我正在研究以下情况:
View有几个标签。每个选项卡由单独的类表示 并包含数据网格。
每个选项卡都可以返回用户选择的项目集。 这些项目非常相似,但每个项目都有一两个 特定于它的属性。
View Presenter有一个名为SendItems的方法,它应该得到 当前活动选项卡中的项目并调用相应的后端 服务方法(每个不同项目集合的一种方法)。
这里的设计是什么?到目前为止,我已经想到了两种方法:
由于项目非常相似,我理论上可以将所有项目分组 将属性转换为1 Item类然后我可以抽象整个事物 通过一个名为GetItems()的方法来返回 采集。然后,我可以在选项卡类型上使用委托字典 称之为正确的后端方法。
我可以从基本选项卡派生所有选项卡,存储列表
Presenter中的选项卡并按住“当前”选项卡。在SendItems上,make
几个条件(每种类型一个(如果CurrentTab is
TabA => MethodA(),
等。))然后向下转发以检索正确的数据。最后,打电话
适当的后端方法。
我没有找到任何解决方案吸引人(将单独的属性分组到一个类/向下转换)并且希望有一种解决此类问题的标准方法。
答案 0 :(得分:0)
我相信你的情况,我会主要选择2。
这接近你上面的第二个选项,除了利用更多的多态性魔法并避免你在SendItems中的条件 - 如果你有这样的条件,只需将逻辑卸载到子类。