软件设计之 单一职责原则SRP

单一职责原则:就一个类而言应该仅有一个引起它变化的原因(ASD)。

笔者刚学编程的时候,是学c语言入门的。c语言是面向过程语言,刚开始习惯了,到现在写程序也会被面向过程思想所影响。
到了面向对象编程(java)的时候,很自然地就会给一个类加入各种各样的功能,于是在一个类中写入各种各样的代码
但是这样做的弊端很明显,如果一个类的职责过多,就相当于把这些职责耦合在一起,一个职责的改变可能会抑制或改变其他职责的能力。这种耦合的设计会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。
如果把所有的功能都写同一个类中,那么这个类就会高度耦合,里面的代码一环扣一环,如果要更改其中一处代码,很可能会牵一发动全身。改一处地方会影响到很多其他地方,会给后期维护代码带来极大的麻烦,而且还可能会导致出现各种bug。

软件设计真正要做的许多内容,就是发现职责并把那些职责不同的相互分离。
往往我们写程序的时候,如果有多于一个动机去改变一个类的话,那么这个类就具有多于一个的职责。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...