读书人

单调职责原则(Single Responsibility

发布时间: 2012-11-22 00:16:41 作者: rapoo

单一职责原则(Single Responsibility Principle)
1 作用它指导我们如何提高代码的可重用度!2 定义

一个类应该仅有一个引起它的变化的原因(职责),或者说一个类只负责一个功能领域中的相应职责。这条原则也称为类设计的“高内聚性原则”。

(l)含义之一:避免相同的职责(也称为功能)分散到不同的类中实现。

(2)含义之二:也应该要避免一个类承担过多的职责。

将过多的职责耦合在一个类中导致了脆弱设计。

软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。

3 单一职责原则分析

1) 一个类(或者大到模块,小到方法)承担的职责越多,它被复用的可能性越小。而且如果一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作。

2) 类的职责主要包括两个方面:数据职责和行为职责,数据职责通过其属性来体现,而行为职责通过其方法来体现。

3) 单一职责原则是实现高内聚、低耦合的指导方针,在很多代码重构手法中都能找到它的存在,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关重构经验。

4 为什么要遵守单一职责原则?

可以减少类之间的耦合

当需求变化时,只修改一个类,从而也就隔离了变化;

如果一个类承担的职责过多,就等于把这些职责耦合在一块,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。

5 不遵守单一职责原则的后果

会影响到对该类的复用性。

当只需要复用该类的某一个职责时,但由于它和其它的职责耦合在一起,也就很难分离出。

6楼liutao123654昨天 18:50
谢谢分享!
5楼qq570585984昨天 18:49
谢谢分享!!
4楼liu765023051昨天 15:01
谢谢分享!
3楼liutao123654昨天 14:20
谢谢分享!
2楼ices20122昨天 13:56
分析得很好,单一职责是最简单、最重要,但又是大家没有很好去执行的设计原则。
1楼rongyuwenzhou前天 09:31
XIEXIE

读书人网 >软件架构设计

热点推荐