1.简单工厂模式

例子:封装计算器的加减乘除方法为类,并通过一个类去判断调用,不用实例化多个类

2.策略模式

简介:它定义了算法家族,分别封装起来,让他们直接可以互相替换,此模式让算法的变化,不会影响其他算法的客户。
例子:商场促销,策略与简单工厂的结合

3.单一职责原则

简介:就一个类而言,应该仅有一个引起它变化的原因。

4.开发-封闭原则

简介:是说软件实体(类、模块、函数等)应该可以扩展,但是不可以修改.

5.依赖倒转原则

简介:子类型必须能替够替换他们的父类型.

6.装饰模式

简介:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。
例子:穿衣服类(人、服饰[T恤、皮鞋、短裤、西装])

7.代理模式

简介:为其他对象提供一种代理以控制对这个对象的访问。
例子:为别人做嫁衣

8.工厂方法模式

简介:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到子类。

9.原型模式

简介:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。
例子:简历复印

10.模板方法模式

简介:定义一个操作类中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的特定步骤。

11.迪米特法则

简介:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另外一个类的某一个方法的话,可以用过第三者转发这个调用。

12.外观模式

简介:为子系统的一组接口提供一个一致的界面,此模式顶一个了一个高层接口,这个接口使得这一系统更加容易
例子:投资股市->投资基金

13.建造者模式

简介:将一个复杂对象的构建与它的表示层分离,使得同样的构建过程可以创建不同的表示。

14.观察者模式

简介:定义了一种多对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象再状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。
例子:老板回来,我不知道,事件的委托

15.抽象工厂模式

简介:提供一个创建一系列相关或互相依赖对象的接口,而无需指定他们具体的类。
例子:数据库的切换

16.状态模式

简介:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其他类
例子:加班何时休

17.适配器模式

简介:将一个类的接口转换成客户系统的另外一个接口。Adapter模式使得原本接口不兼容而不能一起工作的那些类可以一起工作
例子:在NBA我需要翻译

18.备忘录模式

简介:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
例子:保存游戏进度

19.组合模式

简介:将对象组合树形结构以表示'部分-整体'的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
例子:分公司。分部门

20.迭代器模式

简介:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部显示。

21.单例模式

简介:保证一个类仅有一个实例,并提供一个访问他的全局访问点。

22.桥接模式

简介:将抽象部分与它的实现部分分离,使它们都可以独立的变化。

23.命令模式

简介:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作.

24.职责链模式

简介:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象练成一个链,并沿着这条链传递该请求,知道有一个对象处理他为止。
例子:申请加薪

25.中介者模式

简介:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互.

26.享元模式

简介:运用共享技术有效的支持大量细粒度的对象.

27.解释器模式

简介:给定一个语言,定义他的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
例子:音乐解释器

28.访问者模式

简介:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作.

创建型模式
抽象工厂、建造者、工厂方法、原型、单例、
结构性模式
适配器、桥接、组合、 装饰、外观、享元、代理
行为型模式
观察者、模板方法、命令、状态、职责链
解释器、中介者、访问者、策略、备忘录

设计是以使用工厂方法开始,当设计者发现需要更大的灵活性时,设计便会向其他创建型模式演化。

工厂方法的实现并不能减少工作量,但是他能够在必须处理新情况时,避免使已经很复杂的代码更加复杂。