设计模式 -- 建造者模式

前言

月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂)

央是一片海洋,海乃百川,代表着一块海绵(吸纳万物)

泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出)

月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容

希望大家一起坚持这个过程,也同样希望大家最终都能从零到零,把知识从薄变厚,再由厚变薄!

一、什么是建造者模式?

        建造者模式是一种创建型设计模式,它允许您将复杂对象的构建步骤分离,从而让使用者更好的控制它们的创建过程.

二、建造者模式的优缺点:

优点:

  1. 可以将一个复杂对象的构造过程与其表示分离,使得构造过程和表示可以独立地变化。
  2. 可以使得代码更加清晰,易于理解和维护。
  3. 可以使得对象的构造过程更加灵活,可以根据需要动态地改变构造过程。
  4. 可以避免在构造过程中出现重复的代码,提高代码的重用性。

缺点:

  1. 建造者模式增加了代码的复杂性,需要创建多个类和接口,增加了代码的维护难度。

  2. 在建造者模式中,每个具体的建造者必须实现相同的接口,这可能会导致代码冗余。

  3. 建造者模式需要创建多个对象,这可能会导致性能问题。

  4. 建造者模式可能会导致过度的设计,增加了代码的复杂性和维护难度

三、建造者模式的结构:

设计模式 -- 建造者模式_第1张图片

 

 抽象建造者(MarriageBuilder):包含创建产品各个子部件的抽象方法接口

具体建造者(ManBuilder和WomanBuilder):实现builde,完成复杂产品各个部件的具体创建方法

产品(Marry):包含多个组成部件的复杂对象

指挥者(Mom):调用建造者对讲中的部件构造与装配方法完成复杂对象的创建

四、建造者模式实战:

        以上结构图为例,现在的年轻人都面临着结婚现状,小明跟小美说,想先买车,在买房,然后结婚,但小美说她要先买房,在结婚,之后在买房.在两人纠缠不休之际,妈妈说我来安排

1.创建产品Marry:

设计模式 -- 建造者模式_第2张图片

 

2.创建抽象建造者 MarriageBuilder

设计模式 -- 建造者模式_第3张图片

 

 

 3.创建具体建造者

设计模式 -- 建造者模式_第4张图片

 设计模式 -- 建造者模式_第5张图片

 

 4.创建指挥者Mon

设计模式 -- 建造者模式_第6张图片

 5.测试

设计模式 -- 建造者模式_第7张图片

6.结果

 设计模式 -- 建造者模式_第8张图片

  所以到底要听谁的指挥呢.... 

五.总结:

        建造者模式,我想大家都用的挺多的StringBuilder啥的,因此大家也可以仔细思考下,自己的业务场景里面是否有同样的适用场景.

你可能感兴趣的:(设计模式,建造者模式)