建造者模式
2015-12-08 23:16
127 查看
感觉建造者模式最经典的一句话就是:设计与实施分离
设计就是导演类
实施就是建造者类
成品就是模型类
举个简单的例子--例如你想吃某道菜
你要告诉厨师,我想吃红烧肉,并且是毛氏红烧肉--你充当着导演的角色
厨师根据你的要求,首先要准备食材,准备锅具,准备毛氏红烧肉的配料,然后开始制作你想要的红烧肉--厨师充当着建造者的角色
红烧肉--充当着模型的角色
导演只负责提出需求,而厨师负责满足需求,这就是建造者模式的简单理解。
但是,我又对这个问题有产生了一个想法。
厨师难道就不是设计者么?
针对这个提问,我们很容易想到厨师既可以是设计者也可以是实施者,应对这种情况的话,还需要进行分离么?相当于在实施的环节中,提供了设计的支持。
在实际问题中,并没有必要将这个分的那么细致,如果发现一个对象既是设计又是实施,那么可以考虑构建到同一个对象中,而没有必要分离饿了,但是,他仍然是建造者
只不过在原有导演的基础上做了一个精细设计。
设计就是导演类
实施就是建造者类
成品就是模型类
举个简单的例子--例如你想吃某道菜
你要告诉厨师,我想吃红烧肉,并且是毛氏红烧肉--你充当着导演的角色
厨师根据你的要求,首先要准备食材,准备锅具,准备毛氏红烧肉的配料,然后开始制作你想要的红烧肉--厨师充当着建造者的角色
红烧肉--充当着模型的角色
导演只负责提出需求,而厨师负责满足需求,这就是建造者模式的简单理解。
但是,我又对这个问题有产生了一个想法。
厨师难道就不是设计者么?
针对这个提问,我们很容易想到厨师既可以是设计者也可以是实施者,应对这种情况的话,还需要进行分离么?相当于在实施的环节中,提供了设计的支持。
在实际问题中,并没有必要将这个分的那么细致,如果发现一个对象既是设计又是实施,那么可以考虑构建到同一个对象中,而没有必要分离饿了,但是,他仍然是建造者
只不过在原有导演的基础上做了一个精细设计。
相关文章推荐
- 【消息框】的4种显示形式
- 【html】【3】html标签列表
- MariaDB Galera Cluster 部署
- spark streaming初体验
- 【操作系统】 银行家算法-banker's algorithm
- 44.Android MD5Util
- STM32学习第八天---看了点ARM Cortex-M3的概览
- Flume日志采集系统的安装和部署
- Android
- 函数式Android编程(II):Kotlin语言的集合操作
- 响应式web设计总结
- MariaDB集群Galera Cluster的研究与测试
- sina微博时间转化问题
- Android之事件处理全面剖析
- thinkphp 显示BUG错误信息
- Android 网页展示之WebView
- springmvc学习笔记--REST API的异常处理
- JavaScript 写几个简单的知识点
- MariaDB Galera Cluster集群
- 2015年12月8日