一:单一职责原则(Single Responsibility Principle,SRP)
含义:
1、避免相同的职责分散到不同的类中
2、避免一个类承担太多职责
作用:
1、可以减少类之间的耦合
2、提高类的复用性
二:接口隔离原则(Interface Segregation Principle,ISP)
含义:
1、一个类对另外一个类的依赖性应当是建立在最小的接口上的
2、客户端程序不应该依赖它不需要的接口方法(功能)
作用:
1、ISP可以达到不强迫客户(接口的使用方)依赖于它们不用的方法,接口的实现类应该只呈现为单一职责的角色(遵守SRP原则)
2、ISP可以降低客户之间的相互影响
三:开放封闭原则(Open-Close Principle,OCP)
含义:
1、Open(Open for extension):模块的行为必须是开放的、支持扩展到,而不是僵化的
2、Close(Close for extension):在对模块的功能进行扩展时,不应该影响或大规模的影响已有的程序模块
四:里氏替换原则(Liskov Substitution Principle,LSP)
含义:
1、子类型必须能够替换掉它们的父类型、并出现在父类能够出现的任何地方
2、LSP主要是针对继承的设计原则
如何遵守:
1、父类的方法都要在子类中实现或者重写,并且派生类只实现其抽象类中声明的方法,而不应当给出多余的方法定义和实现
2、在客户端程序中只应该使用父类对象而不应该直接使用子类对象,这样可以实现动态多态
五:依赖倒置原则(Dependence Inversion Principle,DIP)
含义:
1、上层模块不应该依赖于下层模块,它们共同依赖于一个抽象(父类不能依赖子类,它们都要依赖抽象类)
2、抽象不能依赖于具体,具体应该要依赖于抽象
如何遵守:
1、每个较高的层次类都为它所需要的服务提出一个接口声明,较低层次类实现这个接口
2、每个高层类都通过该抽象接口使用服务