设计模式概述
基本概念
领会设计模式几个要点:
创建型模式
- 工厂方法模式(细分)
工厂方法模式:
多工厂方法模式:
静态工厂模式 - 抽象工厂模式
- 单例模式
- 创造者模式
- 原型模式
工厂方法模式(Factory)
定义一个接口用于创建对象,但是让子类决定初始化哪个类。
工厂方法把一个类的初始化下方到子类。
- 工厂方法模式:
- 多工厂方法模式:
- 静态工厂模式
抽象工厂模式(Abstract Factory)
为一个产品族提供了统一的创建接口,当需要这个产品族的某一系列的时候,可以从抽象工厂中选出相应的系列创建一个具体对象。
单例模式(Singleton)
确保一个类只有一个实例,并提供对该实例的全局访问
建造者模式(Builder)
将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。
原型模式(Prototype)
用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。
结构型模式
适配器模式(Adapter )
将某个类接口转换成客户端期望的另一个接口表示,适配器模式可以消除由于接口不匹配造成的类兼容性问题。
桥接模式(Bridge )
讲一个抽象与实现解耦,以便两者可以独立变化。
组合模式(Composite)
把多个对象组成树状结构来表示整体和局部,这样用户可以用同样的方式对待单个对象和对象的组合
装饰器模式(Decorator)
向某个对象动态的添加更多的功能,装饰器模式是除类继承外的另一种扩展功能的方法。
外观模式(Facade)
为系统中的一组接口提供一个一致的界面(接口),外观模式定义一个高层接口,这一接口使得这一子系统更加容易使用。
享元模式(Flyweight )
通过共享以便有效地支持大量小粒度对象。
代理模式(Proxy )
为其它对象提供一个代理以控制对这个对象的访问。
行为型模式
责任链模式(Chain of Responsibility )
为解除请求发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求,需要将这些对象连成一条链,并沿这条链传递该请求,直到有一个对象处理它。
命令模式(Command)
讲一个请求封装成一个对象,从而使用户可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可取消的操作。
迭代子模式( Iterator)
提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。
解释器模式( Interpreter )
给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。
中介者模式(Mediator)
包装一些列对象相互作用的方式,使得这些对象不必相互明显作用,从而使它们之间呈松散耦合。
备忘录模式(Memento)
备忘录对象是一个用来存储另外一个对象内部状态的快照的对象,以便在适当的时候把这个对象还原到存储时的状态。
观察者模式(Observer )
在对象间定义一个一对多的联系,当一个对象改变了状态时,所有其它相关对象会被通知并自动刷新。
状态模式(State)
让一个对象在其内部状态改变时,其行为也随之改变。状态模式需要对每一个系统可能的状态创建一个状态类的子类,当系统状态变化时,系统便改变所选的子类。
策略模式(Strategy )
定义一个算法系列,将其各自封装,并使它们之间有交互性,使得在用户使用时能够独立改变。
模板方法模式(Template Method)
准备一个抽象类,将部分逻辑以具体方法及具体构造子类的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。
访问者模式(Visitor)
把数据结构和作用到数据结构上的操作解耦,使得操作集合可以相对自由的演化。。
喜欢的话,给博主赏一杯冰阔乐吧