Featured image of post 【合集】Java设计模式

【合集】Java设计模式

相关文章

【合集】Java软件设计原则

创建型模式

对象实例化的模式,创建型模式用于解耦对象的实例化过程。

  1. 单例模式Singleton 某个类只能有一个实例,提供一个全局的访问点。
  2. 原型模式Prototype 通过复制现有的实例来创建新的实例。
  3. 工厂方法模式FactoryMethod 一个工厂类根据传入的参量决定创建出哪一种产品类的实例。
  4. 抽象工厂模式AbstractFactory 创建相关或依赖对象的家族,而无需明确指定具体类。
  5. 建造者模式Builder 封装一个复杂对象的创建过程,并可以按步骤构造

模式对比:

工厂方法注重整体的创建,建造者模式注重过程

工厂方法创建一类对象,抽象工厂创建多类对象

结构型模式

把类或对象结合在一起形成一个更大的结构。

  1. 代理模式Proxy 为其它对象提供一个代理以便控制这个对象的访问。
  2. 适配器模式Adapter 将一个类的方法接口转换成客户希望的另一个接口。
  3. 装饰者模式Decorator 动态的给对象添加新的功能。
  4. 桥接模式Bridge 将抽象部分和它的实现部分分离,使它们都可以独立的变化。
  5. 外观模式Facade 对外提供一个统一的方法,来访问子系统中的一群接口。
  6. 组合模式Composite 将对象组合成树形结构以表示“部分-整体”的层次结构。
  7. 享元模式Flyweight 通过共享技术来有效的支持大量细粒度的对象。

静态代理和装饰者模式的区别:

相同点

都要实现与目标类相同的业务接口

在两个类中都要声明目标对象

都可以在不修改目标类的前提下增强目标方法

不同点

目的不同 装饰者是为了增强目标对象 静态代理是为了保护和隐藏目标对象

获取目标对象构建的地方不同 装饰者是由外界传递进来,可以通过构造方法传递 静态代理是在代理类内部创建,以此来隐藏目标对象

行为型模式

类和对象如何交互,及划分责任和算法。

  1. 策略模式Strategy 定义一系列算法,把他们封装起来,并且使它们可以相互替换。
  2. 模板方法模式TemplateMethod 定义一个操作中算法的骨架,而将一些步骤延迟到子类中。
  3. 命令模式Command 将命令请求封装为一个对象,使得可以用不同的请求来进行参数化。
  4. 职责链模式ChainOfResponsibility 允许多个对象按顺序接收请求,将请求依次传递给下一个对象,直到有对象处理它为止。
  5. 状态模式State 允许一个对象在其内部状态改变时改变它的行为。
  6. 观察者模式Observer 一个对象(目标对象)维持一系列的观察者对象,每个观察者对象都定义了一个回调函数,当目标对象的状态发生变化时,会通知所有的观察者对象。
  7. 中介者模式Mediator 为一组对象提供一种松耦合的方式,将对象间的交互封装在Mediator中。
  8. 迭代器模式Iterator 遍历集合对象,而无需暴露该对象的内部表示。
  9. 访问者模式Visitor 不改变数据结构的前提下,增加作用于一组对象元素的新功能。
  10. 备忘录模式Memento 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
  11. 解释器模式Interpreter 给定一个语言,定义它的文法的一种表示,并定义一个解释器。
皖ICP备2024056275号-1
发表了78篇文章 · 总计148.99k字
本站已稳定运行