软件设计的23中设计模式

23种模式

第一大类,创建型:

        1. 单例模式(Singleton Pattern) 

        2. 抽象工厂(Abstract Factory) 

        3. 建造者模式(Builder) 

        4. 工厂方法模式(Factory Method) 

        5. 原型模式(Prototype) 

第二大类,结构型:

        6. 适配器模式(Adapter Pattern) 

        7. 桥接模式(Bridge Pattern) 

        8. 装饰模式(Decorator Pattern) 

        9. 组合模式(Composite Pattern) 

       10. 外观模式(Facade Pattern) 

       11. 享元模式(Flyweight Pattern) 

       12. 代理模式(Proxy Pattern) 

       13. 模板方法(Template Method) 

       14. 命令模式(Command Pattern) 

       15. 迭代器模式(Iterator Pattern) 

第三大类,行为型:

       16. 观察者模式(Observer Pattern) 

       17. 解释器模式(Interpreter Pattern) 

       18. 中介者模式(Mediator Pattern) 

       19. 职责链模式(Chain of Responsibility Pattern) 

       20. 备忘录模式(Memento Pattern) 

       21. 策略模式(Strategy Pattern) 

       22. 访问者模式(Visitor Pattern) 

       23. 状态模式(State Pattern)


模式的简单介绍

        1、单例模式:是指确保一个类仅有一个唯一的实例,并且提供一个全局的访问点。

        单例模式应用的场景一般发现在以下条件下:

  (1)资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如日志文件,应用配置。

  (2)控制资源的情况下,方便资源之间的互相通信。如线程池等。

        2、抽象工厂:是指当有多个抽象角色时,使用的一种工厂模式。

        抽象工厂的应用场景中包含:

        (1)一系列互相有关联的产品类,这些产品类有相同的结构;

        (2)一系列实的工厂类,实现由抽象工厂类提供的接口。每个实的工厂类生产一组相关的产品类对象;

        3、建造者模式:将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示;

        应用场景:

    (1)创建一些复杂的对象时,这些对象的内部组成构件间的建造顺序是稳定的,但是对象的内部组成构件面临着复杂的变化。

    (2)要创建的复杂对象的算法,独立于该对象的组成部分,也独立于组成部分的装配方法时。

        4、工厂模式:工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
        应用场景:

        (1)对于某个产品,调用者清楚地知道应该使用哪个具体工厂服务,实例化该具体工厂,生产出具体的产品来;

        (2)只是需要一种产品,而不想知道也不需要知道究竟是哪个工厂为生产的,即最终选用哪个具体工厂的决定权在生产者一方,它们根据当前系统的情况来实例化一个具体的工厂返回给使用者,而这个决策过程这对于使用者来说是透明的。

        5、原型模式:是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。

        解决的问题:

        它主要面对的问题是:“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。  

你可能感兴趣的:(创建型设计模式)