单一职责原则

最近在学习Java编程,学到单一职责原则,写一下自己的理解。
单一职责原则(Single Responsibility Principle, SRP)是面向对象五个基本原则(SOLID)之一,SRP由罗伯特·C·马丁提出。
SRP指的是,引起一个类变化的因素不要多于一个。这里引起一个类变化的因素就是所谓的职责,当一个类符合遵循单一职责时,其成员应该是跟一个业务紧密相关的,只有当该业务需要扩展时才会引起对该类的修改。
假如一个类T有两个职责P1和P2,当P1引起类T的修改时,可能导致职责P2相关业务的不正常,这就是职责P1和P2耦合在一起了,出于“高内聚,低耦合”的思想,职责P1和P2应该分别由两个类来负责,这也就是单一职责。遵循单一职责原则的好处是,一个类负责相对独立的业务,类之间的耦合小,提高了代码的可读性和可维护性。
一般程序设计人员遵循“高内聚,低耦合”的思想,都会尽量地让代码遵循单一职责原则,但是由于业务扩展,一个职责被分解成了多个职责,这被成为指责扩散,职责扩散导致相应的类要被拆分,如果每次业务扩展的修改都要遵循SRP,那工作量还是很大的。出于平衡遵循SRP和工作量这两点,个人认为可以在代码结构清晰方便维护的时候,在遵循方法级的SRP,当指责扩散到可能影响代码可读性和可维护性时,应该及时重构。

你可能感兴趣的:(单一职责原则)