经常都说设计模式,gof设计模式,23中设计模式等等.但gof到底是什么,23中设计模式到底是哪23中设计模式呢,可能这23中设计模式或了解,或精通,或似是而非,现在就将gof 23中设计模式做个简单的总结,
GOF-- Gang of Four(四人组)
《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》 一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为"四人组(Gang of Four)",而这本书也就被称为"四人组(或 GoF)"书。在《设计模式》这本书的最大部分是一个目录,该目录列举并描述了 23 种设计模式。 ----摘自百度百科.
这23中设计模式包括:
- 创建型模式(5种)
- Factory模式:工厂模式,使用工厂类来创建对象.
- AbstactFactory模式:抽象工厂类,顾名思义就是将一组工厂类再抽象.
- Singleton模式:单例模式,确保在整个系统中只能创建出唯一的一个实例.
- Builder模式:与工厂模式类似,但Builder模式一般用来创建比较复杂的对象.
- Prototype模式:原模式,类似于js中的prototype,提供自我复制的功能
- 结构型模式(7种)
- Bridge模式:桥模式,用来连接两个相对独立的部分(抽象/实现)
- Adapter模式:适配器模式,与现实中的适配器具有相同的功能,使用其他的类或实例来完成自己不能完成的功能.
- Decorator模式:装饰模式,通过组合的方式给类增加职责
- Composite模式:组合模式,递归构建树状的组合结构,如文件系统(文件/目录)
- Flyweight模式:享元模式,避免大量拥有相同内容的小类的开销,使大家共享一个类
- Facade模式:外观模式,为子系统中的一组接口提供一个统一的高层接口
- Proxy模式:代理模式,为其他对象提供一种代理以控制对这个对象的访问
- 行为模式(11种)
- Template模式:模板模式,为某种情况提供一个实现框架.
- Strategy模式:策略模式,定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换
- State模式:状态模式,当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类
- Observer模式:观察者模式,在它本身的状态改变时主动发出通知.
- Memento模式:记忆模式,在不破坏封装行的前提下,捕获并保存一个类的内部状态,这样就可以利用该保存的状态实施恢复操作.
- Mediator模式:中介者模式,定义一个中介对象来封装系列对象之间的交互.
- Command模式:命令模式,将一组行为抽象为对象,实现二者之间的松耦合
- Visitor模式:访问者模式,其意图在于让代码用户能够在不修改现有类层次结构的前提下,定义该类层次结构的操作.
- Chain of Responsibility模式:职责链模式,
- Iterator模式:迭代器模式
- Interpreter模式:解释器模式,