[英]Appropriate design for multiple objects that return similar data
我正在处理以下情况:
视图有几个选项卡。 每个选项卡由一个单独的类表示,并包含一个数据网格。
每个选项卡都可以返回用户选择的项目集。 这些项目非常相似,但是每个项目都有一个或两个特定于它的附加属性。
View Presenter有一个名为SendItems的方法,该方法应从当前活动选项卡中获取项目并调用适当的后端服务方法(每个不同的项目集合一个方法)。
这里合适的设计是什么? 到目前为止,我已经想到了两种方法:
由于Items非常相似,因此从理论上讲,我可以将所有属性分组到1 Item类中,然后可以通过使用名为GetItems()的方法将整个内容抽象出来,该方法将返回集合。 然后,我可以在选项卡类型上使用委托字典来调用正确的后端方法。
我可以让所有标签都来自基本标签,将标签列表存储在Presenter中并按住Current标签。 在SendItems上,设置几个条件(每种类型一个(如果CurrentTab is
TabA => MethodA()等)。)然后向下转换以检索正确的数据。 最后,调用适当的后端方法。
我认为这两种解决方案都没有吸引力(将单独的属性分组为一个类/向下转换),并希望有一种解决此类问题的标准方法。
我相信在您的情况下,我主要会选择选项2。
这与上面的第二个选项非常接近,除了利用更多的多态性魔术并避免在SendItems中使用条件-如果您具有这样的条件,只需将逻辑卸载到子类中即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.