1. .单一职责
一个类只负责一项职责。
2. 里氏替换原则
子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:
子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
子类中可以增加自己特有的方法。
当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。【注意区分重载和重写】
当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
3.依赖倒置原则
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
通俗点说:要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
4.接口隔离原则
使用多个隔离的接口,比使用单个接口要好,客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
本意降低类之间的耦合度,而设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。
5.迪米特法则
定义:一个对象应该对其他对象保持最少的了解
类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大
所以要尽量降低类与类之间的耦合。
6.开闭原则
开闭原则就是说对扩展开放,对修改关闭。
为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,需要面向接口编程。