【发布时间】:2014-03-01 00:25:09
【问题描述】:
我正在处理以下场景:
一个视图有多个选项卡。每个选项卡由一个单独的类表示 并包含一个数据网格。
每个选项卡都可以返回用户选择的项目集。 这些项目非常相似,但每一个都有一两个额外的 特定于它的属性。
View Presenter 有一个名为 SendItems 的方法,它应该获取 当前活动选项卡中的项目并调用适当的后端 服务方法(每个不同的项目集合一个方法)。
这里合适的设计是什么?到目前为止,我想到了两种方法:
由于项目非常相似,理论上我可以将所有项目分组 属性到 1 个 Item 类,然后我可以抽象整个事情 通过一个名为 GetItems() 的方法来输出,该方法将返回 收藏。然后我可以在选项卡类型上使用委托字典 调用正确的后端方法。
我可以让所有选项卡派生自一个基本选项卡,存储列表 Presenter 中的选项卡并按住当前选项卡。在 SendItems 上,使 几个条件(每种类型一个(如果 CurrentTab
isTabA => MethodA(), 等等..)),然后向下转换以检索正确的数据。最后,调用 适当的后端方法。
我发现这两种解决方案都不吸引人(将单独的属性分组到一个类/向下转换),并希望有一种解决此类问题的标准方法。
【问题讨论】:
标签: c#