您的位置:首页 > 其它

设计原则——单一职责原则(Single Responsibility Principle)

2016-08-06 15:15 316 查看

定义

就一个类而言,应该仅有一个引起它改变的原因。

原因

  需求的变化会反映为类的职责的变化,过多的职责耦合在一起,使得一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。

举例

  下面的
Modem
(调制解调器)接口具有两个职责,一个是连接管理(
dial
hangup
方法),另一个是数据通信(
send
recv
方法)。

public interface Modem {
void dial(String pno);
void hangup();
void send(char c);
void recv();
}


这两个职责是否应该被分开,这依赖于需求变化的方式。

分开

如果需求的变化会单独影响连接管理的职责,比如连接管理方法的签名发生变化,那么就会导致调用数据通信方法的类必须重新编译,这种情况下这两个职责就应该被分离。



不分开

如果需求的变化总是导致这两个职责同时变化,那么就不应该分离它们。实际上,分离它们就会有不必要的复杂性的臭味。

结论

  SRP是所有原则中最简单的之一,也是最难正确运用的之一。我们会自然地将职责混合在一起。软件设计真正要做的许多内容,就是发现职责并把那些职责分离。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计