【发布时间】:2010-09-09 20:08:42
【问题描述】:
我有一个应用程序,根据查看位置的不同而存在细微差异。
业务逻辑和视图样式的变化很好 - 这一切都分别通过依赖注入和 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;
}
}
但是,我担心 Environment 类会到处泄漏。
我不想过度设计某些东西,但我想知道是否有一种合适的设计模式我在这里遗漏了,这将使我避免长时间使用 switch...case 或 if...then地点。
【问题讨论】:
标签: design-patterns language-agnostic oop