1.单一职责原则 (SRP)

它的定义是:就一个类而言,应该仅有一个引起它变化的原因。
说白了就是,一个类中是一组相关性和高的函数,一个类尽量只实现一个功能。

2.开闭原则 (OCP)

它的定义是:程序中的对象应该对应扩展是开放的,对于修改是封闭的。
这个意思就是说,当一个类实现了一个功能的时候,如果想要改变这个功能不是去修改代码,而是通过扩展的方式去实现。实现该类提供的接口方法,然后注入到该类中,通过这种方法去实现功能的改变。

3.里氏替换原则 (LSP)

它的定义是:所有引用基类的地方必须能透明的使用其子类对象。
说白了就是,只要父类能出现的地方子类就可以出现,替换为子类也不会产生任何的错误。开闭原则一般可以通过里氏替换实现对扩展开放,对修改关闭的效果。

4.依赖倒置原则 (DIP)

它指的是:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。即依赖抽象,而不依赖具体的实现。

5.接口隔离原则 (ISP)

它的定义是:客户端不应该依赖它不需要的接口。
它的目的是:解开系统的耦合,从而容易重构更改。

6.迪米特原则 (LOD)

它的定义是:一个对象应该对其他对象有最少的了解
通俗的说,一个类应该对自己需要耦合或调用的类知道的越少越好,类的内部如何实现与调用者或依赖者没关系。

创建型模式

Abstract Factory

Builder
Factory Method
prototype
singleton

结构型

Adapter
Bridge
Composite
Decoractor
Facade
Flyweight
Proxy

行为型

Chain of Responsibility
command
Interpreter
Mediaor
Memento
Observe
State
Strategy
Template Method
Visitor