23种设计模式之——建造者模式
来源:互联网 发布:php extension dir 编辑:程序博客网 时间:2024/05/17 05:16
1.定义
Separate the construction of a complex object from its representation so that the sameconstruction process can create different representations.
(将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。)
2.实用代码
产品类:
public class Product { public void doSomething(){ //独立业务处理 }}抽象建造者:
public abstract class Builder { //设置产品的不同部分,以获得不同的产品 public abstract void setPart(); //建造产品 public abstract Product buildProduct();}具体建造者:
public class ConcreteProduct extends Builder { private Product product = new Product(); //设置产品零件 public void setPart(){ /* * 产品类内的逻辑处理 */ } //组建一个产品 public Product buildProduct() { return product; }}导演类:
public class Director { private Builder builder = new ConcreteProduct(); //构建不同的产品 public Product getAProduct(){ builder.setPart(); /* * 设置不同的零件,产生不同的产品 */ return builder.buildProduct(); }}
3.建造者模式优点
● 封装性
使用建造者模式可以使客户端不必知道产品内部组成的细节
● 建造者独立,容易扩展
● 便于控制细节风险
4.使用场景
● 相同的方法,不同的执行顺序,产生不同的事件结果时,可以采用建造者模式。
● 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,则可以使用该模式。
● 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,这个时候使用建造者模式非常合适。
● 在对象创建过程中会使用到系统中的一些其他对象,这些对象在产品对象的创建过程中不易得到时,也可以采用建造者模式封装该对象的创建过程。该种场景只能是一个补偿方法,因为一个对象不容易获得,而在设计阶段竟然没有发觉,而要通过创建者模式柔化创建过程,本身已经违反设计的最初目标。
注意:建造者模式关注的是零件类型和装配工艺(顺序),这是它与工厂方法模式最大不同的
地方,虽然同为创建类模式,但是注重点不同。
阅读全文
0 0
- 23种设计模式之——建造者模式
- 设计模式之——建造模式
- 23种设计模式之建造者模式(Builder)
- c++ 23种设计模式之建造者模式
- //c++ 23种设计模式之建造者模式2
- 23种设计模式之建造者模式
- 23种设计模式之【建造者模式】
- 23种设计模式之-建造者模式
- Java 23种设计模式之建造者模式
- 学习设计模式之禅——建造者模式
- 《设计模式之禅》——建造者模式
- 设计模式之(四)——建造者模式
- Android设计模式之建造者模式——AlertDialog
- 设计模式之禅——建造者模式
- Java设计模式之——建造者模式
- 建造者模式——设计模式之创建型
- 设计模式之—建造者模式(Builder)-Java实现
- 设计模式——建造者模式
- MyBatis 二级缓存
- c++之引用和指针的区别和联系
- JDBC java对MySQL数据库进行查询操作,并把查询的结果输出
- mybatis 源码学习之getMapper过程分析
- 对一个数组按给定的下标排序,仅使用两两交换的方式,要求不能对数组进行扩容尽可能使用额外少的空间。原数组为:A,B,C,D,E, 现给定新的位置为3, 0, 1, 4, 2那么排序为D,A,B,E,C
- 23种设计模式之——建造者模式
- 磁盘调度算法
- C#中的泛型
- maven解决jar包版本冲突
- MyBatis二级缓存 完成版
- spark中的online均值/方差统计
- 网络层模型
- 简单的Java程序
- C#中的值类型和引用类型