51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【合集】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 给定一个语言,定义它的文法的一种表示,并定义一个解释器。
赞(0)
未经允许不得转载:工具盒子 » 【合集】Java设计模式