极速理解设计模式系列:1.建造者模式(Builder Pattern)
来源:互联网 发布:衣着判断 知乎 编辑:程序博客网 时间:2024/06/07 17:58
4个角色:指挥者(Director),建造者(Builder),具体建造者(ConcreteBuilder),产品(Product)
产品:需要创建的对象产品
具体建造者:创建产品的实例并且实现建造者多个方法对产品进行装配
建造者:本质为抽象类,里面的抽象方法供具体建造者重写,声明产品的引用
指挥者:调用建造者抽象类以及其方法
实现思路:客户端创建一个指挥者,并且实例化需要的产品的具体建造者,然后指挥者调用具体建造者的实例即将产品生产出来。
类图:
应用场景:在Silverlight中我们需要生产一列多行的输入框+TextBlock的组合,但是这些输入框的类型不同,有一些只能输入256个字符,有的只能输入20个字符,还有的是多行的,有的是单行的输入框。这些输入框的种类是固定的,但是可能用户自定义输入框的时候我们生成的顺序和各自的生成数量不知道。
分析:在这里产品是固定的,有A,B,C,D,E,F六种输入框+TextBlock,用户可能生成的情况是A,A,C,C,B,B,C、也可能是B,C,D,B,C,F。这里我们使用建造者模式,这几种输入框基本上都差不多,都是TextBlock+TextBox的模式。但是可输入数量和是否多行是不定的,那么我们实现AConcreteBuilder,BConcreteBuilder,CConcreteBuilder,DConcreteBuilder,EConcreteBuilder,FConcreteBuilder等多个具体建造者,然后对于建造者中只需要两个方法分别实例化产品,并且对产品的属性(可输入字符数、是否可多行)进行设置,然后再用户需要调用什么产品的时候,使用指挥者调用想要的ConcreteBuilder具体建造者即可。
下面我们以一个电脑产品生产的实例来具体看看Builder Pattern是如何使用的:
一、产品角色
三、具体建造者角色
四、指挥者角色
- 极速理解设计模式系列:1.建造者模式(Builder Pattern)
- 设计模式----建造者模式(Builder Pattern)
- 设计模式---建造者模式(Builder Pattern)
- 设计模式【建造者模式Builder Pattern】
- design pattern Builder 建造者设计模式
- 建造者模式(Builder Pattern)
- 建造者模式(Builder Pattern)
- 建造者模式(Builder Pattern)
- 建造者模式【BUILDER PATTERN 】
- 建造者模式【Builder Pattern】
- 建造者模式(Builder Pattern)
- 建造者模式(Builder Pattern)
- 建造者模式(Builder Pattern)
- 建造者模式-Builder Pattern
- 建造者模式Builder Pattern
- 建造者模式Builder Pattern
- 建造者模式(Builder Pattern)
- Builder Pattern(建造者模式)
- HashSet、TreeSet、LinkedHashSet的区别
- Oracle TO_YMINTERVAL 函数简介
- android4.0 系统Setting中bluetoothUI定制修改
- Qt画平滑曲线
- android各种权限及说明
- 极速理解设计模式系列:1.建造者模式(Builder Pattern)
- 设计模式之工厂模式
- Maximum size of malloc()
- UVa10878 - Decode the tape-字符串-难度1
- Oracle数据库JDBC连接
- 3Dmax2014 monitor.exe关闭问题
- 修改用户名、改变语言环境
- 字符串的完美度--英雄会<高校俱乐部>
- [Jweb] 在 servlet 中重写 service() 方法,不重写 doGet, doPost 方法,示例。