设计模式:建造者(build)模式

建造者模式是一种创建型设计模式,用于隔离复杂对象的构造过程和其部分的表示。它允许客户端指定产品的部分和装配顺序,而无需了解内部细节。在计算机组装、框架配置等场景中广泛应用。建造者模式的优点包括更好的代码复用性、易于扩展和独立的建造者类,但可能产生额外的对象开销。示例中展示了如何通过指挥者、抽象建造者和具体建造者角色来构建和组装一个电脑对象。
摘要由CSDN通过智能技术生成

概念:建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离

使用建造者模式的场景和优缺点:

使用场景
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
相同的方法,不同的执行顺序,产生不同的事件结果时。
多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时。
产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能。
创建一些复杂的对象时,这些对象的内部组成构件间的建造顺序是稳定的,但是对象的内部组成构件面临着复杂的变化。
当构造一个对象需要很多参数或者参数的个数和类型不固定的情况下
开源框架(okhttp,Glide等)

优缺点

优点:
1、更好的复用性,生成器模式很好的实现构造算法和具体产品实现的分离
2、具体的建造者类之间是相互独立的,容易扩展。
3、可以很容易的改变产品的内部表示

缺点:
1、产生多余的Build对象以及Dirextor类,消耗内存
2、对象的构造过程暴露

例如:我们要DIY一台计算机,对于CPU、主板或者其他部件什么牌子的,什么配置的,我们根据自己的需求来进行变化,但是这些部件组装成一台电脑的过程都是一样的,我们无需知道这些部件是怎么组装成电脑的,我们只需要提供相关部件的牌子和配置就可以了。对于这种情况我们可以采用建造者模式,将部件和组装过程分离,使得构造过程和部件都可以自由扩展,将两者之间的耦合降低到最低。

在建造者模式中有如下角色:
Dirextor: 指挥者类,用于统一组装流程
Builder: 抽象Builder类,规范产品的组建,一般是由子类实现。
ConcreteBulider: 抽象Builder类的实现类,实现抽象Builder类定义的所有方法,并且返回 一个组建好的对象
Product: 产品类

代码实例:

1)创建产品类

我要组装一台电脑,电脑被抽象为Computer类,它有三个部件:CPU 、主板和内存。并在里面提供了三个方法分别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值