设计模式-单一职责原则
2016-06-16 15:13
288 查看
内容来自百度百科
单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。
原理
如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。而如果想要避免这种现象的发生,就要尽可能的遵守单一职责原则。此原则的核心就是解耦和增强内聚性。
T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。也就是说职责P1和P2被耦合在了一起。
职责扩散:因为某种原因,某一职责被分化为颗粒度更细的多个职责了。
单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。
原理
如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。而如果想要避免这种现象的发生,就要尽可能的遵守单一职责原则。此原则的核心就是解耦和增强内聚性。
问题由来
之所以会出现单一职责原则就是因为在软件设计时会出现以下类似场景:T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。也就是说职责P1和P2被耦合在了一起。
产生原因
没有任何的程序设计人员不清楚应该写出高内聚低耦合的程序,但是很多耦合常常发生在不经意之间,其原因就是:职责扩散:因为某种原因,某一职责被分化为颗粒度更细的多个职责了。
解决办法
遵守单一职责原则,将不同的职责封装到不同的类或模块中。相关文章推荐
- Swift -- 7.5 类型属性,方法
- http-关于application/x-www-form-urlencoded等字符编码的解释说明
- C++析构顺序
- EditText中imeOptions属性使用及设置无效解决
- 一个表的两个字段具有相同的类型。如何仅用SQL语句交换这两列的数据?
- 向服务器发送json数据的方法汇总
- 解决Xamarin Android SDK Manager闪退问题
- python学习6
- javascript prototype继承对象的属性和方法
- linux设置开机服务自启动/关闭自启动 chkconfig命令
- 28、JavaScript中真和假的判定
- Windows编译Caffe指南
- My97DatePicker 只显示月份
- golang的linux安装
- java 通用导出一个excel
- 蒙特卡罗(Monte Carlo)方法
- C#导出Excel
- 自学QT笔记
- linux用户权限相关内容查看
- android6.0 动态申请权限