Даже в качестве значения по умолчанию вы можете использовать значение другой переменной
, имеющей файл defvalue.sh
#!/bin/bash
variable1=$1
variable2=${2:-$variable1}
echo $variable1
echo $variable2
, запустить ./defvalue.sh first-value second-value
output
first-value
second-value
и запустите ./defvalue.sh first-value
вывод
first-value
first-value
Мне любопытно, что вы считаете BLL. Оба приведенных вами примера, Контроль доступа и Проверка, - это вещи, которые я обычно видел реализованными в других местах.
Я видел, как они реализованы либо на уровне представления, либо на уровне обслуживания, общем для, скажем, веб-служб и веб-интерфейс. Я вижу, что BLL использует подсистему управления доступом, но не то, что управление доступом является частью BLL. У вас есть какие-нибудь примеры этого?
То же самое и с валидацией, в зависимости от того, что вы подразумеваете под «валидацией». Вы имеете в виду, что «этот бизнес-объект передает все действия, которые он должен передать, учитывая его текущее состояние?» Или вы имели в виду проверку в стиле пользовательского интерфейса, чтобы убедиться, что буквенные символы не вводятся в числовое поле?
Вы также упоминаете элементы управления, которые обычно считаются артефактами пользовательского интерфейса. Не могли бы вы подробнее рассказать о том, что вы считаете BLL? Я также был бы признателен за любые ссылки на примеры того, что вы считаете BLL.
Основываясь на ваших пояснениях, я бы указал вам на Enterprise Library из паттернов и практик Microsoft группа. Вот некоторые из его компонентов:
] Все это доступно на CodePlex как в исходном, так и в двоичном форматах. Исходный код содержит подробные модульные тесты.
Я укажу вам на Enterprise Library из группы Microsoft шаблонов и практик . Вот некоторые из его компонентов:] Все это доступно на CodePlex как в исходном, так и в двоичном форматах. Исходный код содержит подробные модульные тесты.
Я укажу вам на Enterprise Library из группы Microsoft шаблонов и практик . Вот некоторые из его компонентов:] Все это доступно на CodePlex как в исходном, так и в двоичном форматах. Исходный код содержит подробные модульные тесты.
I лично предпочитаю интегрировать BLL с ORM, потому что я не вижу причин разделять их. Классический пример с модульным тестированием не является веским аргументом, так как я бы хотел проверить свою бизнес-логику с помощью запросов (для меня они являются неотъемлемой частью бизнес-логики).
Взгляните на CSLA ! Это помогает вам внести структуру в вашу бо-иерархию.
Указываю на ECO . Он является зрелым и достиг версии 5. Он также бесплатен для неограниченного использования до 12 классов в модели. Рекомендуется!