GOF 23种设计模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kikajack/article/details/80845772

设计模式 Java 版
图说设计模式

设计模式,就是对软件设计中各种常见场景的编码套路。套路知道的多了,代码就敲的轻松。

分类

创建型设计模式 Creational Pattern

创建型设计模式描述了如何创建类,对类的实例化过程进行了抽象,将软件模块中对象的创建和使用分离。在使用这些对象时只需要知道接口,而不用知道细节。

  • 简单工厂模式 Simple Factory:工厂类根据传入的参数决定创建出那一种产品类的实例
  • 工厂方法模式 Factory Method:定义一个创建对象的接口,让实现了这个接口的具体子类来实例化产品
  • 抽象工厂模式 Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类
  • 原型模式 Prototype:通过复制已有实例来创建新的实例
  • 单例模式 Singleton:一个类只能有一个实例
  • 建造者模式 Builder:封装复杂对象的构建过程

结构型设计模式 Structural Pattern

结构型设计模式描述了如何实现类和对象的组合。

结构型设计模式可以分为类结构型模式(关心类的组合,一般只存在继承关系和实现关系)和对象结构型模式(关心类与对象的组合,通过关联关系使得在一 个类中定义另一个类的实例对象,然后通过该对象调用其方法)。根据合成复用原则,尽量用关联关系,少用继承关系,因此大部分结构型设计模式都是对象结构型模式。

  • 适配器模式 Adapter:使得原本由于接口差异而不能一起工作的类可以一起工作
  • 桥接模式 Bridge:分离抽象和实现,使其可以独立变化
  • 组合模式 Composite:将对象组合成树形结构
  • 装饰模式 Decorator:动态扩展对象的功能,增加额外职责
  • 外观模式 Facade:增加抽象层,对外提供统一接口
  • 享元模式 Flyweight:通过共享技术来支持大量细粒度的对象
  • 代理模式 Proxy:增加代理层,为其他对象提供代理以控制对这个对象的访问

行为型设计模式

行为型设计模式描述了类和对象怎样交互,以及如何分配职责。

  • 职责链模式 Chain of Responsibility:请求的发送与接收解耦,每个接收者都包含对下一个接收者的引用,连接成一条链,并且沿着这条链传递请求,直到有对象处理
  • 命令模式 Command:
  • 解释器模式 Interpreter:
  • 迭代器模式 Iterator:
  • 中介者模式 Mediator:
  • 备忘录模式 Memento:
  • 观察者模式 Observer:一对多的依赖关系。当观察的目标对象状态发生变化时,所有依赖于它的观察者都将得到通知。
  • 状态模式 State:
  • 策略模式 Strategy:将每个算法封装成独立的类,所有类之间可以互换,根据情况调用不同的类。
  • 模板方法模式 Template Method:定义好算法的骨架后,将一些步骤的实现延迟到子类中。子类可以复用算法结构,同时可以重写算法的某些特定步骤。
  • 访问者模式 Visitor:

猜你喜欢

转载自blog.csdn.net/kikajack/article/details/80845772