如何写出高质量的代码,是程序员进阶的必须思考的问题之一。设计原则,设计模式是必须要了解并灵活使用的。
单一职责原则-SRP(Single resonsibility principle)
- 面向对象五个基本原则之一(SOLID)(单一职责原则、开闭原则、接口隔离原则、里氏替换原则和依赖倒置原则
) - 也叫单一功能原则
- 一个对象或方法只做一件事情。
- 如果一个方法承担了过多的职责,那么在需求的变迁过程中,需要改写这个方法的可能性就越大
- 应该把对象或方法划分成较小的粒度
- 问题由来:
T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。也就是说职责P1和P2被耦合在了一起。
- 产生原因
没有任何的程序设计人员不清楚应该写出高内聚低耦合的程序,但是很多耦合常常发生在不经意之间,其原因就是:
职责扩散:因为某种原因,某一职责被分化为颗粒度更细的多个职责了。 - 解决办法
遵守单一职责原则,将不同的职责封装到不同的类或模块中。
最少知识原则-LKP(Least Knowledge Principle)
- 也叫迪米特法则
- 一个类对于其他类知道的越少越好
- 一个软件实体应当尽可能少地与其他实体发生相互作用
- 应当尽量减少对象之间的交互
- 如果两个对象之间不必彼此直接通信,那么这两个对象就不要发生直接的相互联系,可以转交给第三方进行处理
开放封闭原则-OCP(Open Closed Principle)
- 是所有面向对象原则的核心
- 软件设计本事所追求的目标就是封装变化,降低耦合,而开放封闭原则正式对这一目标的最直接体现
- 软件实体(类,模块,函数)等应该是可以拓展的,但是不可修改
- 当需要改变一个程序的功能或者给这个程序增加新功能的时候,可以使用增加代码的方法,尽量避免改动程序的源代码,防止影响原系统的稳定。
网友评论