设计模式——生成器(建造者)模式

本文介绍了建造者(生成器)设计模式,包括其结构、实例分析、优缺点及应用场景。Builder接口负责创建产品的部件,ConcreteBuilder实现构建和装配产品,Director控制建造过程,Product表示复杂构建对象。优点是隐藏产品内部表示,分离构造和表示,精细控制构造过程。缺点是产品差异大时不适用,产品内部复杂可能导致建造者增多。适用于对象构造算法独立于组成部分和装配方式,或需要不同表示的情况。
摘要由CSDN通过智能技术生成

1. 简介

  建造者(Builder)模式又称 生成器模式,属于创建型模式。在软件的设计中,我们可能经常会遇到需要构建某个复杂的对象(比如在游戏开发中,进行人物角色的构建),建造该对象的“过程”是稳定的(对于一个人设来都有身体,脸,发型,手脚等),而具体建造的“细节”是不同的(每个人设的身体,脸等各有千秋)。但对于用户来讲,我才不管这些,我只想告诉你,我现在需要某个对象(拥有某特征的人物角色),于是你就创建一个给我就行了。
  如果你需要将一个复杂对象的 构建与它的表示分离,使得同样的构建过程可以创建不同的表示的意图时,我们需要应用于一个设计模式,“建造者(Builder)模式”,又叫生成器模式。建造者模式可以将一个产品的内部表象与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。如果我们使用了建造者模式,那么用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需要知道了。

2. 结构

  此模式的结构图如下所示:

  • Builder:是为创建一个Product对象的各个部件指定的抽象接口。
  • ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件。
  • Director:构建一个使用Builder接口的对象。
  • Product:表示被构建的复杂对象。
  客户创建Director对象,并用它所想要的Builder对象进行配置;一旦产品部件被生成,导向器就会通知生成器;生成器处理导向器的请求,并将部件添加到该产品中;客户从生成器中检索产品。

3. 实例分析

  考虑这么一个应用场景:例如我们正在开发某个游戏程序,其中就需要进行人物的构建。整个游戏中的人设可谓五花八门,不同的游戏场景下,需要的人设有所不同,但是这些人设的组成却是相似的过程,每个人设都需要有头部、身体、手脚等。
  我们知道一个游戏的人设就是一个复杂的对象,在构建出一个人设时我们需要相应的人设的头部、发型、身体、手脚、服饰等来组成我们需要的人设。我们对人设时如何创建的过程和细节不感兴趣,我们所 需要的是指定某种类型的人设就可以得到它们。
  我们仔细分析会发现&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值