设计原则——单一职责原则(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是所有原则中最简单的之一,也是最难正确运用的之一。我们会自然地将职责混合在一起。软件设计真正要做的许多内容,就是发现职责并把那些职责分离。相关文章推荐
- 一步一步跟我学易语言之第二个易程序菜单设计
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- C#中设计、使用Fluent API
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- JavaScript设计模式初探
- JavaScript 组件之旅(一)分析和设计
- C# 事件的设计与使用深入理解
- 大型网站设计注意事项大全
- Android中的脑残设计总结
- 大型JavaScript应用程序架构设计模式
- 常用的Javascript设计模式小结
- Android项目开发之UI设计器
- 用户权限管理设计[图文说明]
- PHP常用设计模式之委托设计模式
- HBase RowKey设计的那些事
- HTML&CSS构建网站链接
- iOS 应用2.0版怎么做(转)
- 报表开发小技巧:报表的设计与配色技巧
- 也谈淘点点60s短信订单的架构设计
- 性别字段存储时应该使用的字符串,还是数字?