三、生成器模式Builder(创建型)
来源:互联网 发布:常见的nosql数据库 编辑:程序博客网 时间:2024/05/18 03:40
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。它的思路大概是这样的:整个构建过程分为两个部分,首先依靠Director对象进行指导创建,这里的指导主要是创建操作的各种顺序,然后具体的构建却是由Builder来进行的。另外Builder一般会设计成为接口,这样就可以实现不同的Builder给Director使用,Director就可以给Client生成不同的对象了。
Builder模式适用于:创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时;构造过程必须允许被构造的对象有不同的表示时。
Director指导Builder创建Product的过程,并调用Builder的getResult方法获取Product。其中Builder和Product都是接口,这样可以通过向Director传入不同的ConcreteBuilder来完成不同的创建方法,还可以生产不同的产品。当产品的床架工艺变复杂时,只需要修改Director中的创建步骤,就可以影响到生产出来的Product。
public interface Product {public void giveName(String name);}public class ConcreteProduct implements Product{private String name = null;public void giveName(String name){this.name = name;}public String toString(){return "ConcreteProduct: "+name;}}public interface Builder {public void buildPart();public Product getResult();}public class ConcreteBuilder implements Builder{private Product product;public ConcreteBuilder() {product = new ConcreteProduct();}@Overridepublic void buildPart() {product.giveName("new name");}public Product getResult(){return product;}}public class Director {public Product Construct(Builder builder){builder.buildPart();//创建前的操作return builder.getResult();}}public class Client {@Testpublic void testBuilder(){Builder builder = new ConcreteBuilder();Director director = new Director();Product product = director.Construct(builder);System.out.println(product.toString());}}
通过Builder模式,你可以改变一个产品的内部表示,毕竟产品对外都是接口,具体实现类就会被隐藏起来;还可以将构造代码和表示代码分开;还可以让你通过Builder的子类对构造过程进行更精细的控制。
0 0
- 三、生成器模式Builder(创建型)
- 三、Builder 生成器模式(创建型)
- Builder 生成器(创建型模式)
- 4.Builder 生成器(创建型模式)
- 创建型模式:Builder(生成器)
- Builder 生成器(创建型模式) 笔记
- Builder生成器(创建型模式)
- Builder生成器(创建型模式)
- 【创建型模式】builder(生成器)
- 创建型模式-生成器(builder)
- 创建模式之三:生成器方法(Builder)
- 设计模式之生成器(Builder)----对象创建型模式
- Builder 生成器模式(创建型模式)
- BUILDER(生成器)—对象创建型模式
- 设计模式--创建型- Builder(生成器/创建者)
- 1.2 Builder(生成器) -- 对象创建型模式
- Builder(生成器)---对象创建型模式
- 设计模式-创建型-builder生成器
- pimple学习:源码解读
- 《用JavaScript实现转盘抽奖程序》二
- Android App 安装成系统应用
- 【LeetCode】 001. Two Sum
- Activity的四种启动模式-图文并茂eclipse设置详解
- 三、生成器模式Builder(创建型)
- 未过代码求解 POJ 1062 昂贵的婚礼
- mac word从文档中删除个人信息
- 华为OJ 初级:在字符串中找出连续最长的数字串
- IOS获取各个文件目录路径的方法以及相关沙盒机制理解
- 实现版本更新
- 暑期训练Breadth-First Search by Foxpower
- POJ 3172 Scales (剪枝深搜)
- mybatis: Invalid bound statement (not found)