单一职责原则(Single Responsibility Principle):

   1.避免相同的职责分散到不同的类中;

   2.避免一个类承担太多的职责;

   这个在面向对象程序设计中非常重要,这个需要我们,明确我们所需要的对象,在设计类的时候不要让某一个类承担太多的职能,这样会减少类的复用性,同时加大类的复杂性。简单工厂模式和MVC都是这种模式的一个具体的应用。


接口隔离原则(Interface Separation Principle):

   1.一个类对另外一个类的依赖是建立在一个最小的接口之上的。

   2.客户端程序不应该依赖它不需要的接口方法。

   这个原则的应用主要是防止我们设计出胖接口,一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。“不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。”这个说得很明白了,再通俗点说,不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。


开放封闭原则:

开放的模块必须是开发的,支持扩展的,而不是僵化的。

封闭指的是对模块的功能进行扩展时,不应该影响或者大规模地影响以有的程序模块。

实现开放与封闭原则的核心思想就是对抽象编程,因为抽象相对稳定。让类依赖于固体的抽象,这样的修改就是封闭的;通过面向对象的继承和多态,可以实现对对象题的继承,通过覆写其方法来改变固有行为,实现新的扩展方法,所以对于扩展就是开发的。


替换原则:

子类型必须能够替换掉他们的父类型、并出现在父类能够出现的任何地方。LSP原则能让我们正确地设计出合理的对象继承设计、合理地应用抽象机制。


依赖倒置:

上层模块不应该依赖于下层模块,他们共同依赖于一个抽象。

抽象不能依赖于具体,具体应该依赖于抽象。