GOF设计模式
创建性模式
Factory(工厂)
提供创建对象的接口。一般和多态一起使用,创建用工厂,使用用多态。场景主要用于界面这些。
Prototype(原型)
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
Builder(建筑者)
是将构建复杂对象的过程和它的部件接藕,就是部件一个类,过程一个类,过程类参数是部件类。
Singleton(单例)
保证一个类只有一个实例,并提供一个访问它的全局访问点。单例一般有静态模式和懒人模式,懒人模式主要要加锁。
结构模式
Facade(外观)
为子系统种的一组接口提供一个一致接口。
Proxy(代理)
为其他对象提供一种代理以控制对这个对象的访问。使用场景,1,授权机制,2,长时间操作,3,还可以用于copy-on-write的操作里面,就是深拷贝在修改之前才操作。
Adapter(适配器)
将两个不兼容的类一起使用,就需要有Adaptee(被适配者)和Adaptor(适配器)两个身份。
Composite(合成物)
将对象以树形结构组织起来,以达成“部分–整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。
Decorator(油漆工)
动态给一个对象添加一些额外的职责,就像在墙上刷油漆。
Bridge(桥)
将抽象和行为划分开来,各自独立,但能动态结合。一般抽象用多态,行为用单例。
Flyweight(轻量级)
也叫享元模式,避免大量开销,使大家共享一个类。一般是用工厂来表达。 —–continue