丈夫志四海,万里犹比邻。这篇文章主要讲述分分钟理解建造者模式相关的知识,希望能为你提供帮助。
我们在前面已经提过设计模式创建型模式的 3 种工厂模式 和 单例模式;本篇带来同属创建型模式的“建造者模式”~
文章图片
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。它提供了一种创建对象的最佳方式。
一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。
建造者模式:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。
它的优点是:1、建造者独立,易扩展。 2、便于控制细节风险。缺点: 1、产品必须有共同点,范围有限制。 2、如内部变化复杂,会有很多的建造类。
当我们需要生成的对象具有复杂的内部结构或需要生成的对象内部属性本身相互依赖时,会借助它来解决问题;
实战举例:
【分分钟理解建造者模式】比如说,我们要建造一辆车:
function car ()
this.name = ,
this.number = ,
this.wheel = ,
this.engine =
车由名字、车牌号、轮子、引擎组成;
然后,我们在建造类中分门别类建造他们:
function carBuilder ()
this.nameBuilder = function ()
this.name = 宝马
,
this.numberBuilder = function ()
this.number = 88888888
,
this.wheelBuilder = function ()
this.wheel =米其林轮胎
,
this.engineBuilder = function ()
this.engine =V8引擎
,
this.getCar = function ()
var Car = new car()
Car.name = this.name;
Car.number= this.number;
Car.wheel = this.wheel;
Car.engine = this.engine;
return Car;
然后,再统一指挥来组装构建:
function director ()
this.action = function (builder)
builder.nameBuilder();
builder.numberBuilder();
builder.wheelBuilder();
builder.engineBuilder();
var builder = new carBuilder(); // 构建类
var director = new director(); // 指挥构建
director.action(builder); // 应用构建
var Car = builder.getCar(); // 创建
console.log(Car);
建造者模式主要用于“分布构建一个复杂的对象”,它很容易进行扩展。如果有新的需求,通过实现一个新的建造者类就可以完成,并且建造者模式解耦了对象本身与构建过程,使得我们不用关心具体的建造过程。
另外:要注意:与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。
OK,以上就是本篇分享,你“学废”了吗?
我是掘金安东尼,输出暴露输入,技术洞见生活。
推荐阅读
- 浅谈mysql性能优化
- 开源鸿蒙首款IDE开发OpenHarmony 3.1 Release应用
- 1分钟完成etcd的备份与还原
- SMTP协议解读以及如何使用SMTP协议发送电子邮件
- 重磅!业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目
- 没执行过 rm -rf /* 的开发不是好运维
- Ansible的hosts配置
- oracle VM virtual Box安装windows server2016虚拟机,并网络联通宿主机+共享文件
- LVM基本操作