无名 发表于 2022-5-8 18:05:14

【限定72小时】设计模式之建造者(Builder)模式


1、定义以及 UML 建模图
将一个复杂的对象的构建与它的表示分离,是的同样的构建过程可以创建不同的表示。http://cdn.u1.huluxia.com/g3/M01/BE/B8/wKgBOV5we0KAAv0hAAAhenqWGvg351.png

2、使用场景:
多个部件或者零件,都可以装配到一个对象中,但是产生的运行结果又相同。
产品类非常复杂,或者产品类中调用顺序不同产生了不同的作用。
初始化一个对象特别复杂,如使用多个构造方法,或者说有很多参数,并且都有默认值时。
3、核心类
(1) 抽象产品类 computer。
(2) Builder 抽象 Builder,规范产品的组建,一般是由子类实现具体的组建过程。
(3)MacbookBuilder 具体的Builder类,具体的创建对象的类。
(4) Directror 统一组建过程。
以组装一台计算机为主,主要进行组装主机,设置操作系统,设置显示器。
4、具体使用
4.1 计算机抽象类 Computerhttp://cdn.u1.huluxia.com/g3/M01/BE/B9/wKgBOV5we0OAfh4PAAKqfeBPxB0768.png
4.2 具体产品类 MacBookhttp://cdn.u1.huluxia.com/g3/M01/BE/B9/wKgBOV5we0SAeBv2AADS5wDFksg061.png
4.3 抽象 Builderhttp://cdn.u1.huluxia.com/g3/M01/BE/B9/wKgBOV5we0SAU90dAAEbl37aDx4418.png
4.4 具体的 Builderhttp://cdn.u1.huluxia.com/g3/M01/BE/B9/wKgBOV5we0WAEYIlAAJ3jgbGSLg570.png
4.5 Director类,负责具体的构造 Computerhttp://cdn.u1.huluxia.com/g3/M01/BE/B9/wKgBOV5we0aANqyfAAGEpka_Vtg962.png
4.6 具体使用http://cdn.u1.huluxia.com/g3/M01/BE/B9/wKgBOV5we0eARHSeAAG5UKJl1CM755.png
5.总结
为了灵活构造复杂对象,该对象会有多个成员变量,在外部调用的时候,不需要或者不方便一次性创建出所有的成员变量,在这种情况下,使用多个构造方法去构建对象,很难维护,这时候Builder设计模式解决这个问题,进行buid()方法中创建对象,并且将builder传入,该builder中,维护了传入对象的成员变量。

作者:OneXzgj
本教程转载网络,我只是个搬运工
页: [1]
查看完整版本: 【限定72小时】设计模式之建造者(Builder)模式