假设您有一个网站,可让您与最多三个不同的帐户所有者建立帐户。所有者的每个输入页面都是一个单独的aspx页面。第一个人的业务规则与第二个和第三个业主截然不同。第一个将有更多的字段,并且将需要不同的字段,但不需要其他字段。我使用的是MVP (Model View Presenter) pattern。
我可以做到
一个。制作三个单独的视图并让它们全部使用一个具有特殊IF语句或Switch语句的Presenter,以查看您是否正在与某个所有者打交道,如果是,则以某种方式行事。
OR
B中。创建三个独立的视图,并让它们都使用自己的Presenter,它只是执行它为那个所有者的方式,而不需要任何IF语句。
我感到矛盾,因为A似乎是正确的做法,但可能会混乱所有的IF语句,人们可以删除或修改它们而不会产生影响。虽然B看起来像代码重复太多而且看起来很难看。您是否认为这些类太不同而无法共享,而且异常的IF语句太多了?
答案 0 :(得分:3)
我同意上述评论。将演示者的公共代码放在基类中,并让三个特定的子演示者从中继承。这是在设计系统时遵循的基本原则之一:“确定应用程序的各个方面,并将它们与保持不变的方式分开。”
祝你好运。答案 1 :(得分:1)
不要A。
执行Serguei建议的内容,或者使用您正在讨论的重复代码创建一个通用的逻辑类。