软件设计模式–第二章 创建型模式–建造者模式

目录

  • 第二章 创建型模式
    • 1、创建型模式概述
    • 2、建造者模式
      • (1)模式的定义与特点
      • (2)模式的结构与实现
      • (3)应用场景
      • (4)扩展

第二章 创建型模式

1、创建型模式概述

  • 主要特点
    对象的创建与使用分离”,这样可以降低系统的耦合度。

  • 创建型模式分为以下几种:
    ⑴单例(Singleton)模式 :某个类只能生成一个实例,该类提供了一个全 局访问点供外部获取该实例,其拓展是有限多例模式。
    ⑵ 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克 隆出多个和原型类似的新实例。
    ⑶ 工厂方法(Factory Method)模式:定义一个用于创建产品的接口,由子 类决定生产什么产品。
    ⑷ 抽象工厂(Abstract Factory)模式:提供一个创建产品族的接口,其每 个子类可以生产一系列相关的产品。
    ⑸ 建造者(Builder)模式:将一个复杂对象分解成多个相对简单的部分, 然后根据不同需要分别创建它们,最后构建成该复杂对象。

2、建造者模式

(1)模式的定义与特点

  1. 定义:指将一个复杂对象的构造与它的表示分离,使同样的构建 过程可以创建不同的表示,它是 将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。

  2. 优点:
    1)各个具体的建造者相互独立的,有利于系统的扩展
    2)客户端不必知道产品内部组成的细节,便于控制细节 风险。

  3. 缺点:
    1)产品的组成部分必须相同,**这限制了其使用范围;
    2)如果产品的内部变化复杂,该模式会增加很多的建造 者类

建造者模式注重零部件的组装过程,工厂模式更注重零部件的创建过程

(2)模式的结构与实现

1、结构

  • 产品角色(Product):它是包含多个组成部件的复杂对象, 由具体建造者来创建其各个组成部件。
  • 抽象建造者(Builder):是一个包含创建产品各个子部件的 抽象方法的接口,它通常还包含一个返回复杂产品的方法 getResult()。
  • 具体建造者(ConcreteBuilder):实现了Builder接口,完 成复杂产品的各个部件的具体创建方法。
  • 指挥者(Director):它调用建造者对象中的部件构造与装 配方法完成复杂对象的创建,在指挥者中不涉及具体产品的信息。

结构图:

代码:
1)产品角色:是包含多个组成部件的复杂对象。

2)抽象建造者:包含创建产品各个子部件的抽象方法。

3)具体建造者:实现了抽象建造者接口。

4)指挥者:调用建造者中的方法完成复杂对象的创建。

5)客户类

2、实现

  • 用建造者模式描 述客厅装修。

类图:

产品:客厅

抽象建造者:装修工人

具体建造者:具体装修工人1

具体建造者:具体装修工人2

class ConcreteDecorator2  extends Decorator{	public void buildWall() {		product.setWall("w2");	  }	  public void buildTV() {		  product.setTV("TV2");	  }	  public void buildSofa() {		  product.setSofa("sf2");	  

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐