博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式学习笔记——建造者模式
阅读量:6812 次
发布时间:2019-06-26

本文共 563 字,大约阅读时间需要 1 分钟。

建造者模式怪就怪在有一个导演类(Director)。

本来,建造什么东西,应该放在建造类(Builder),由它来封装建造过程。

但建造者模式里面,偏偏将这个建造过程,放在导演类。建造者只提供建造基本东西的方法,由导演类来按需调用,任意组合。如果一个建造者的建造方法,随意组合,就能够千变万化,得到各种不同结果,显然结果就不能放在建造者类里面,由建造者提供。

如果用拍戏来做例子,建造者模式还真切合:演员就是Builder,导演就是Director,影片就是Product。演员会各种演技(各种建造方法),就看导演怎么安排(调用)了。

而我现在读的这本设计模式教材(清华大学出版社),举的例子是麦当劳里的套餐。Builder1是套餐A,Builder2是套餐B,然后由侍应(Director)来指定内容,我认为例子举的不恰当,不好理解。套餐本来就是固定的,尽管里面有饮料,有薯条什么的,但无须什么组合。难道套餐还可以增减内容的?这还叫套餐吗?应该说套餐是Director才对。

如果非要用美式快餐店来做建造者模式的例子,我认为可以这样举例:

Director:叫外卖的人

Builder1:麦当劳

Builder2:肯德基

转载于:https://www.cnblogs.com/leftfist/p/4257982.html

你可能感兴趣的文章
Spring知识点总结
查看>>
2018年全国卷Ⅰ卷理科数学图片版
查看>>
CF915E Physical Education Lessons(珂朵莉树)
查看>>
bzoj3550: [ONTAK2010]Vacation(单纯形法+线性规划)
查看>>
nodejs.md
查看>>
图文混排的几种实现方案
查看>>
opencv(10)图像变换之边缘检测
查看>>
百度地图的简单使用
查看>>
15个简单算法题
查看>>
JSTL 核心标签库 使用(C标签)
查看>>
L2-004. 这是二叉搜索树吗?
查看>>
socket发送http请求
查看>>
Redis主从配置
查看>>
光耦工作原理
查看>>
bzoj3262
查看>>
BZOJ3925: [Zjoi2015]地震后的幻想乡
查看>>
CSS布局基础
查看>>
C++day02 学习笔记
查看>>
UICollectionView
查看>>
EasyUI Dialog 对话框
查看>>