如何减少代码中的重复 - 如果语句与单独的类

时间:2010-09-29 19:30:18

标签: oop design-patterns performance theory mvp

假设您有一个网站,可让您与最多三个不同的帐户所有者建立帐户。所有者的每个输入页面都是一个单独的aspx页面。第一个人的业务规则与第二个和第三个业主截然不同。第一个将有更多的字段,并且将需要不同的字段,但不需要其他字段。我使用的是MVP (Model View Presenter) pattern

我可以做到

一个。制作三个单独的视图并让它们全部使用一个具有特殊IF语句或Switch语句的Presenter,以查看您是否正在与某个所有者打交道,如果是,则以某种方式行事。

OR

B中。创建三个独立的视图,并让它们都使用自己的Presenter,它只是执行它为那个所有者的方式,而不需要任何IF语句。

我感到矛盾,因为A似乎是正确的做法,但可能会混乱所有的IF语句,人们可以删除或修改它们而不会产生影响。虽然B看起来像代码重复太多而且看起来很难看。您是否认为这些类太不同而无法共享,而且异常的IF语句太多了?

2 个答案:

答案 0 :(得分:3)

我同意上述评论。将演示者的公共代码放在基类中,并让三个特定的子演示者从中继承。这是在设计系统时遵循的基本原则之一:“确定应用程序的各个方面,并将它们与保持不变的方式分开。”

祝你好运。

答案 1 :(得分:1)

不要A。

执行Serguei建议的内容,或者使用您正在讨论的重复代码创建一个通用的逻辑类。