在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
概述建造者模式是相对比较简单的一种设计模式,属于创建型模式的一种; 定义:将一个复杂的对象分解成多个简单的对象来进行构建,将复杂的构建层与表现层分离,使相同的构建过程可以创建不同的表示模式; 优点:
模式作用:
注意事项:
白话解释: 某土豪想建一个房子,某土豪只需要找包工头,包工头再去找施工团队来建造房子,而不需要土豪自己去一个个的找工人搭建施工团队开始施工;包工头知道土豪的需求,也知道哪里能找到工人搭建施工团队,工人可以直接干活,中间节省了土豪直接和工人沟通的成本;土豪不需要知道房子该怎么建,土豪只需要最后能验收到房就行; 代码实现在写代码之前我们先分析一下: 1、产出的东西是房子 2、包工头调用工人进行开工而且他要很清楚工人们具体的某一个大项 3、工人是盖房子的工人可以建卧室建客厅建厨房 4、包工头只是一个接口,他只对外说盖房子,他不用做事情; function Fangzi(){ this.woshi = ""; this.keting = ""; this.chufang = ""; } function Baogongtou(){ this.jianfangzi = function(gongren){ gongren.jian_woshi(); gongren.jian_keting(); gongren.jian_chufang(); } } function Gongren(){ this.jian_woshi = function(){ console.log("卧室建好了!"); } this.jian_keting = function(){ console.log("客厅建好了!"); } this.jian_chufang = function(){ console.log("厨房建好了!"); } this.wangong = function(){ var fangzi = new Fangzi(); fangzi.woshi = "ok"; fangzi.keting = "ok"; fangzi.chufang = "ok"; return fangzi; } } let gongren = new Gongren(); let baogongtou = new Baogongtou(); //卧室建好了! //客厅建好了! //厨房建好了! baogongtou.jianfangzi(gongren); var my_fangzi = gongren.wangong(); /* Fangzi={ chufang: "ok" keting: "ok" woshi: "ok" } */ console.log(my_fangzi); 上述代码中我们可以看到,Gongren()里面是具体的施工过程,也就是具体做的事情,Fangzi()里面一开始都是空的,没有客厅、厨房、卧室;Baogongtou()里面只是对外宣传可以建房子,然后传入工人方法调用工人进行施工;工人方法执行完了也就是施工完了,然后就是交房;一个新的方法里面实例化Fangzi()的方法,在新方法里面重新赋值即可; 以上就是怎样用Javascript实现建造者模式的详细内容,更多关于Javascript建造者模式的资料请关注极客世界其它相关文章! |
请发表评论