单一职责原则:
Single Responsibility Principle,SRP:Each class should have one and only one reason to change.——Robert C.Martin 一个类应该仅有一个引起它变化的原因。
SRP是实现高内聚、低耦合的指导方针,是最简单,但又最难以运用的原则。
在SRP中,把职责定义为“变化的原因”。如果你能想到多个动机去改变一个类,那么这个类就具有多于一个的职责,当其中一个职责变化时,很可能会影响其他职责的运作。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。这就需要设计人员发现类的不同职责并将其分离。
职责扩散:
在了解了SRP之后,我们有必要再了解一下职责扩散,因为往往我们会在这个地方违背SRP。所谓职责扩散,就是因为某种原因,职责P被分化为粒度更细的职责P1和P2。
比如下面的例子:
class Program { static void Main(string[] args) { Animal animal = new Animal(); animal.Breathe("小狗"); animal.Breathe("小猫"); } } class Animal { public void Breathe(string animal) { Console.WriteLine(animal + "呼吸空气 "); } }运行结果:
程序上线后需求发生变化,又多了一条鱼出来,此时发现,鱼需要呼吸水,这时你会怎么办?是简单的改一下Animal类,还是代码重构,把动物分为陆生和水生?
所以在职责扩散到我们无法控制的程度之前,应该立刻对代码进行重构。
参考资料:
http://www.voidcn.com/article/p-obarfzju-bme.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。