设计模式生成器模式

网友投稿 658 2022-05-30

设计模式:生成器模式

生成器模式将对象构造代码从产品类中抽取出来, 并将其放在一个名为生成器的独立对象中。

例如:构造一个汽车和汽车操作说明书

class Car is //汽车 class Manual is //汽车说明书 // 生成器接口声明了创建产品对象不同部件的方法。 interface Builder is method reset() method setSeats(...) method setEngine(...) method setTripComputer(...) method setGPS(...) //汽车构造函数 class CarBuilder implements Builder is private field car:Car // 一个新的生成器实例必须包含一个在后续组装过程中使用的空产品对象。 constructor CarBuilder() is this.reset() // reset(重置)方法可清除正在生成的对象。 method reset() is this.car = new Car() // 所有生成步骤都会与同一个产品实例进行交互。 method setSeats(...) is // 设置汽车座位的数量。 method setEngine(...) is // 安装指定的引擎。 method setTripComputer(...) is // 安装行车电脑。 method setGPS(...) is // 安装全球定位系统。 //汽车说明书构造 class CarManualBuilder implements Builder is private field manual:Manual constructor CarManualBuilder() is this.reset() method reset() is this.manual = new Manual() method setSeats(...) is // 添加关于汽车座椅功能的文档。 method setEngine(...) is // 添加关于引擎的介绍。 method setTripComputer(...) is // 添加关于行车电脑的介绍。 method setGPS(...) is // 添加关于 GPS 的介绍。 method getProduct():Manual is // 返回使用手册并重置生成器。

优缺点

优点

可以分步创建对象, 暂缓创建步骤或递归运行创建步骤。

生成不同形式的产品时, 你可以复用相同的制造代码。

设计模式:生成器模式

单一职责原则。 你可以将复杂构造代码从产品的业务逻辑中分离出来。

缺点

由于该模式需要新增多个类, 因此代码整体复杂程度会有所增加。

架构设计

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot Redis 2.0.x
下一篇:QGIS教程01--为什么要用QGIS?
相关文章