在哪里放置我的函数?进入我的母语 Gui 还是进入我的演示者?

Where to place my function? Into my native Gui or into my presenter?

本文关键字:我的 Gui 在哪里 母语 函数      更新时间:2023-10-16

我有以下情况:我在Gui层中有Button和PreviewButton,他们有一个名为BasedButton的公共部分。Button 只知道 IButtonPresenter,即 ButtonPresenter 的界面。按钮应该没有逻辑,演示者可以包含一些逻辑。问题是PreviewButton是如此简单的类,以至于它不需要任何演示者。除了一件事:hasLed(( 函数,它根据按钮类型(简单的开关大小写(确定按钮和预览按钮是否有 led。这个常见的 hasLed(( 函数应该在哪里?我的想法:

PreviewButton
  1. 也应该有演示者,hasLed((函数应该在Button和PreviewButton的演示者的公共部分。问题:似乎过于设计,只针对这一个功能,我应该介绍演示者。

  2. 把它这个逻辑:hasLed((放入BasedButton(在Button和PreviewButton的共同部分(。问题:我试图避免在我的母语 Gui 中加入任何逻辑。

  3. 创建一些命名空间(或使用按钮类型枚举命名空间!(并将这个简单的函数作为内联函数放入其中。问题:"逻辑"被放在一个"奇怪"且不期望的类中。

  4. 将hasLed((函数放入我的演示器层中的管理器类之一中。优点:所有本机 Gui 类都可以访问管理器界面。并且代码保持通用(没有代码重复(。缺点:我的经理有这样的职能似乎有点奇怪。

  5. 其他想法?

也许现在我会选择第四个...

我会选择选项 1。这不是过度工程化(而试图在界面级别上区分 PreviewButton 和 Button 对我来说确实看起来像是过度工程(,它只是样板,但你可以通过这种方式避免不必要的设计复杂性。

相关文章: