什么时候违反SRP(单一责任原则)?

时间:2009-04-02 14:04:55

标签: single-responsibility-principle design-guidelines

SRP PDF版; HTML版)声明

  

改变课程的理由绝不应有多于一个

当您查看Outlook,日历活动窗口时,它有“保存关闭”按钮。

alt text

因此,当保存关闭之一或两者的功能发生变化时,该按钮应该会发生变化。它显然违反了SRP。

此功能既节省时间又方便,因为这是大多数用户在日历上保存约会时期望做的事情。

但是现在,我的问题是,当其他你违反SRP时,除了该功能需要在Outlook中可用时?

1 个答案:

答案 0 :(得分:20)

SRP不适用于UI。请记住,即使按钮被称为“保存并关闭”,毫无疑问,可以使用两种不同的方法或类型来处理保存和关闭功能。该按钮简单地将这两个独立的功能组合在一起。

如果您认为需要违反SRP,则需要重新评估您的方法。任何SRP违规都可以重构为新方法或类型,通过两部分的组合来公开复合功能。