设计模式

建造模式

建造模式是一种创建型设计模式,它将一个复杂对象的构建与其表示分离。它允许你通过一步一步地构建对象来创建不同的表示。它通常用于创建复杂的对象。

建造模式有如下优点:

  • 将复杂对象的构建与表示分离。
  • 可以更容易地创建不同的表示。
  • 可以方便地扩展新类型。

结构 #

建造模式包含以下角色:

  • 抽象建造者(Builder): 定义一个接口,指定构建复杂对象各个部分的步骤。
  • 具体建造者(ConcreteBuilder): 实现抽象建造者接口,具体实现构建复杂对象的步骤。
  • 指挥者(Director): 负责调用具体建造者的方法,构建复杂对象。
  • 产品(Product): 最终构建出来的复杂对象。

UML简图 #

classDiagram
direction LR
  class Builder {
    << interface >>
    +buildPartA()
    +buildPartB()
    +buildPartC()
    +getResult()
  }
  class ConcreteBuilder1 {
    +buildPartA()
    +buildPartB()
    +buildPartC()
    +getResult()
  }
  class ConcreteBuilder2 {
    +buildPartA()
    +buildPartB()
    +buildPartC()
    +getResult()
  }
  class Director {
    +construct()
  }
  class Product {
    +partA
    +partB
    +partC
  }

  Builder <|.. ConcreteBuilder1
  Builder <|.. ConcreteBuilder2
  Director --> Builder
  Director --> Product
  Product ..> ConcreteBuilder1
  Product ..> ConcreteBuilder2

示例代码 #

本示例中我们使用建造模式来创建一部车,一部车显然是一个“复杂”的对象,可以将它的创建分成不同的部分,比如座椅,引擎,行车电脑等等不同的模块。我们使用建造模式来创建一个“车”对象。

...

代理模式

代理可以简单理解为,B类托管A类的功能,并根据需求,对A类的访问作控制,这里的控制可以理解为对A类方法执行的流程的影响,包括但不限于:

...