У меня есть приложение, которое имеет небольшие различия в зависимости от того, где оно просматривается.
Вариации в бизнес-логике и стилях представления хороши - все это обрабатывается посредством внедрения зависимостей и CSS соответственно.
Тем не менее, я отклеиваюсь с небольшими вариациями вида макета / элементов.
Например - если пользователь запускает наше приложение в киоске в магазине, мы используем несколько иные варианты навигации, чем если бы они запускали его в среде рабочего стола или через веб-браузер. Мы можем скрыть кнопку или панель навигации.
В настоящее время я занимаюсь такими вещами, как:
[Inject]
public var environment:Environment;
public function get labelVisible():Boolean
{
switch (environment.channel)
{
case Environment.KIOSK :
return false;
case Envirnoment.WEB :
case Envirnoment.DESKTOP :
return true;
}
}
Тем не менее, я обеспокоен тем, что класс окружающей среды протекает повсюду.
Я не хочу что-то чрезмерно проектировать, но мне интересно, есть ли подходящий шаблон проектирования, который я здесь упускаю, который не даст мне долго иметь switch...case
или if...then
по всему место.