文章目录
单一责任原则(The Single Responsibility Principle,SRP)
- 一个类/方法
只负责一件事情
- 如果一个类承担的职责过多,那么可能一个职责的修改会
引起其他职责的修改
。
开放封闭原则(The Open Closed Principle,OCP)
- 对扩展开放,对修改关闭
- 即当有新需求时,不修改已封装好的代码,因为修改后,又要重新测试,带来不必要的问题。
里氏替换原则(The Liskov Substitution Principle,LSP)
- 子类
可以扩展
父类的功能,但不能改变
父类原有的功能。 - 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法;
- 尽量把父类设计为抽象类或者接口
接口隔离原则(The Interface Segregation Principle,ISP)
- 类不应该实现它不需要的接口。
- 类不应该实现接口中不需要的方法。
- 即接口范围过大时,应当拆分接口方法,但拆分需要有限制,不然类太多,难以管理。
依赖倒置原则(The Dependency Inversion Principle,DIP)
- 高层模块(稳定)不应该依赖低层模块(变化),二者都依赖抽象(稳定)。
- 抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定)。
- 即需要依赖时,我们最好去
依赖一个稳定的对象,如接口、抽象类
,这样当接口的实现发生变化时,我们也不需要更改自己的代码,除非接口本身发生变化。
迪米特法则
- 从被依赖者的角度来说:只暴露应该暴露的方法或者属性,即在编写相关的类的时候确定方法/属性的权限。
- 从依赖者的角度来说,只依赖应该依赖的对象
- 即需要保证良好的
封装
,公开需要公开的方法,非必要方法设为私有。