建造者设计模式

本文介绍了建造者模式的概念,通过KFC套餐的例子阐述了产品、构建者和指挥者的角色。产品是套餐,构建者是不同套餐方案,指挥者是点单系统。建造者模式将产品构建过程解耦,方便扩展,但当组合过多时可能导致系统复杂。同时,文章提及了建造者模式与抽象工厂模式的区别,强调前者关注产品组装步骤,后者关注产品来源。
摘要由CSDN通过智能技术生成

在这里插入图片描述
这是构建者模式的类图, 我们把产品类组合到我们的抽象构建者中,由我们具体的构建者进行实现其细节方法操作,并将我们的抽象构建者聚合到我们的指挥者中,利用指挥者的construct方法进行把构建者中的细节方法进行组合
这里我也看过其他人的构建者博客,其中最好理解的就是KFC案例,把我们需要的套餐(饮料品种加汉堡品种)作为我们的product,我们的构建者就是方案A,B,我们的Director就是点单系统,构建者模式就是把一些制作过程相似的东西抽象出来
这里我做了一个案例在这里插入图片描述
这是我们的产品类
在这里插入图片描述
这是我们的抽象构建者
在这里插入图片描述
这是我们的指挥者
在这里插入图片描述
在这里插入图片描述
这是我们两个具体的构造者,我们这里实际还可以做矮白的房子,高黄的房子,我们只需要再去写一个构造者即可

构造者模式的好处:把我们的产品和构建者解耦了,我们相同的创建过程可以得到不同的对象,而且每个具体的构造者(按我的理解也可以理解为一种方案)都是相互独立的,这样对我们的扩展很方便,而且可以把我们的步骤更加精细的分解成各个方法,创建过程更加的清晰
不好的地方就是如果内部过于复杂,不同的组合过于多,我们系统会变得很庞大就要斟酌是否用建造者模式了

这里插一句题外话:就是对于我们的抽象工厂模式和建造者模式他们可能会很容易搞混,因为类的结构确实有点相同,但是他们的侧重点不一样,工厂我觉得更加在意的是产品是由哪个工厂创建的,而构建者模式,是通过指定的组合各种步骤生成我们的产品且对我们隐藏了其建造的细节.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值