SRP(PDF版本;HTML版本)表明: 一个类的改变原因不应该超过一个 当你看Outlook,日历事件窗口时,它有“保存并关闭”按钮。 所以当保存或关闭的功能发生变化时,该按钮应该改变。这显然违反了SRP。 这个功能既节省时间又方便,因为这是大多数用户保存日历约会时所期望的。 但现在,我的问题是,在哪些情况下你违反SRP,除了需要在Outlook中使用该功能时?
单一职责原则(SRP)不适用于用户界面(UI)。请记住,即使按钮被称为“保存并关闭”,也可以有两种不同的方法或类型来处理保存和关闭功能。按钮只是将这两个不同的功能组合在一起。 如果您感觉需要违反SRP,则需要重新评估您的方法。任何SRP违规都可以重构为一种新的方法或类型,通过组合这两个部分来暴露复合功能。