设计模式-单一职责原则
2015-09-28 14:25
183 查看
一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。例如:要实现逻辑和界面的分离。
如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。而如果想要避免这种现象的发生,就要尽可能的遵守单一职责原则。此原则的核心就是解耦和增强内聚性。
问题由来
之所以会出现单一职责原则就是因为在软件设计时会出现以下类似场景:
T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。也就是说职责P1和P2被耦合在了一起。
产生原因
没有任何的程序设计人员不清楚应该写出高内聚低耦合的程序,但是很多耦合常常发生在不经意之间,其原因就是:
职责扩散:因为某种原因,某一职责被分化为颗粒度更细的多个职责了。
解决办法
遵守单一职责原则,将不同的职责封装到不同的类或模块中。
如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。而如果想要避免这种现象的发生,就要尽可能的遵守单一职责原则。此原则的核心就是解耦和增强内聚性。
问题由来
之所以会出现单一职责原则就是因为在软件设计时会出现以下类似场景:
T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。也就是说职责P1和P2被耦合在了一起。
产生原因
没有任何的程序设计人员不清楚应该写出高内聚低耦合的程序,但是很多耦合常常发生在不经意之间,其原因就是:
职责扩散:因为某种原因,某一职责被分化为颗粒度更细的多个职责了。
解决办法
遵守单一职责原则,将不同的职责封装到不同的类或模块中。
相关文章推荐
- knockout学习笔记目录
- ScrollView中嵌套ListView的问题
- Intent-filter的配置和Intent的发送
- 查表法实现PCM与Alaw、μlaw之间的格式转换 2011
- 为span标签设置宽度
- leetcode:Interleaving String 使用动态规划求解的java源代码
- Ubuntu上安装wine QQ国际版后如何定位好友传送文件的保存位置?
- jQuery性能优化38建议---最引人注目的用户体验!
- python--sorted函数和operator.itemgetter函数
- RTEMS STM32F103RCT6应用
- SVN switch 用法详解
- 有关android分区
- 将数组中奇数都放前面,偶数都放在后面
- Git 版本回退
- hibernate二级缓存
- iOS开发引入第三方类库的问题
- C#开发中遇到问题常问题
- HALCON学习-读取显示图像、矩形区域配置
- 模拟器调试“掉线”问题解决方法
- Scala2.11.7学习笔记(四)常用数据结构