1、单一职责原则(Single Responsibility Principle

说明:就一个类而言,应该仅有一个引起它变化的原因。如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责


2、开放封闭原则(Open Closed Principle

说明:开放封闭原则,指的是,新增功能时可以不修改原有的代码。也就是对扩展开放,对修改封闭。比如,可以通过实现一个已有的接口,或者继承一个已有的类,或者替换组合中的一个实现,来扩展新功能,而不修改原有的代码。

 

3、里氏替换原则(Liskov Substitution Principle

说明:里氏替换原则是指,子类的实例应该能够替换任何其超类的实例。违反此原则的经典例子是,从长方形中派生一个正方形。因为,正方形要求长宽一起变化,而长方形无此限制,则在长方形出现的地方,无法用正方形来替换。假设rectangle.setWidth(4);rectangle.setLength(5); rectangle.getArea(); 应该等于20,而如果用正方形来替换长方形的话,结果为25

 

4、接口分离原则(Interface Segregation Principle

说明:使用多个专门的接口比使用单一的总接口要好。不要强迫用户使用他们不用的方法。一个类对另外一个类的依赖性应当是建立在最小的接口上的。一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。

 

5、依赖倒置原则(Dependency Inversion Principle

说明:面向过程的开发中,高层直接调用底层,造成高层依赖于底层的具体实现。依赖倒置原则认为,高层应该调用抽象的接口,底层则应实现这个接口,两者都依赖于接口。这样解除了高层和底层的耦合。