Builder - 建造者模式
概述:
组装复杂的实例,
自我理解:封装接口, 减少用户开发的困难
说明:
1.本文仅仅是对 图解设计模式 的简单总结(个人笔记).
2.文章中的图片均来自本书,添加水印只是为了防止盗链行为,并无侵权的想法.
综上,若侵权, 请联系我删除!
转载请标注出处!
案例:
- 案例说明:
使用build编写文档,文档具有1.标题(1个),几个字符串,含有条目项目
- 主要代码:
- Director.java
package Gof.Builder; public class Director { private Builder builder; public Director(Builder builder) { // 因为接收的参数是Builder类的子类 this.builder = builder; // 所以可以将其保存在builder字段中 } public void construct() { // 编写文档 builder.makeTitle("Greeting"); // 标题 builder.makeString("从早上至下午"); // 字符串 builder.makeItems(new String[]{ // 条目 "早上好。", "下午好。", }); builder.makeString("晚上"); // 其他字符串 builder.makeItems(new String[]{ // 其他条目 "晚上好。", "晚安。", "再见。", }); builder.close(); // 完成文档 } }
- 代码链接:传送门
uml综述
- Builder(建造者): 定义生成用例的接口
- ConcreteBuilder: 实现Builder角色接口的类
- Director(监工): 负责使用builder的API生成实例,只调用Builder实例中的方法
- 时序图:
收获:
- 面向对象编程中,”谁知道什么”非常重要, 在编程中,应当注意那个类可以使用哪个方法以及使用这个方法到底好不好
- 正因为不知道所以可以替换,正因为可以替换,组件才具有高价值,我们应当时刻注意这种”可替换性”
相关设计模式:
-Templete Method : 父类控制子类
- Builder : Director 角色控制Builder角色
- Composite: 使用Builder生成的对象构造composite模式
- Abstract Factory: 两者都用来生成复杂实例
- Facade: facade角色通过组合内部模块向外提供简单调用的接口
注意:
此部分内容属于对GOF Design Pattern知识的初步认知阶段,参考书籍是结城浩的《图解设计模式》,简单易懂,十分推荐!
以上内容,作者一字一句码出来的,纯属不易,欢迎大家转载,转载是还请您表明出处。另外如果我有侵权行为,请在下方留言,确认后我会及时撤销相应内容,谢谢大家!
PS:欢迎大家来到我的小站,鸣谢!
猜你喜欢