设计模式之:构造者模式
来源:互联网 发布:广州525孕妇摄影淘宝网 编辑:程序博客网 时间:2024/04/30 14:11
一、概述
构造者模式(Builder Pattern):构造者模式将一个复杂对象的构造过程和它的表现层分离开来,使得同样的构建过程可以创建不同的表示,又称为生成器模式。
在软件系统 中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变 化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定 构建算法”不随着需求改变而改变?
如果我们使用了构造者模式,那么用户就只需要指定需要构造的类型就可以得到它们,而具体的构造过程和细节就不需要知道了。
三、构造者模式解析
Builder:是为创建一个Product对象的各个部件指定的抽象接口
ConcreteBuilder:它是具体的构建者,实现Builder接口,构造和装配各个部件。
Product:具体的产品
Director:指挥者,它是构建一个使用Builder接口的对象。
四、实例代码
- //产品类:
- package com.javapatterns.builder;
- public class Product{
- public Product(){
- // System.out.println("product is initing.");
- }
- }
- //抽象建造方法:
- package com.javapatterns.builder;
- abstract public class Builder{
- public abstract void buildPart1();
- public abstract void buildPart2();
- public abstract Product retrieveResult();
- }
- //具体的建造类:产品的零件制造
- package com.javapatterns.builder;
- public class ConcreteBuilder extends Builder{
- private Product product = new Product() ;
- public void buildPart1(){
- System.out.println("build part one.");
- }
- public void buildPart2(){
- System.out.println("build part two.");
- }
- public Product retrieveResult(){
- return product;
- }
- }
- //产品的建造过程:
- package com.javapatterns.builder;
- public class Director{
- private Builder builder;
- public Director(Builder builder){
- this.builder = builder;
- }
- public void construct(){
- builder = new ConcreteBuilder();
- builder.buildPart1();
- builder.buildPart2();
- builder.retrieveResult();
- //continue with other code
- }
- }
- //测试:
- package com.javapatterns.builder;
- public class Client{
- private static Director director;
- private static Builder builder = new ConcreteBuilder();
- public void requestBuild(){
- // director = new Director(builder);
- }
- public static void main(String[] args) {
- director = new Director(builder);
- director.construct();
- }
- }
0 0
- 设计模式之构造者模式
- 设计模式之:构造者模式
- 设计模式之构造模式
- 设计模式--构造者模式
- 设计模式---构造者模式
- 《架构模式应用●设计模式》之构造者
- JS设计模式之构造函数模式
- C语言设计模式:构造者模式
- Builder构造者设计模式
- 设计模式之构造器Builder
- js设计模式之构造函数
- 【设计模式】Java中的模式 -- 构造者模式
- Java设计模式构造型之适配器模式
- JavaScript设计模式之构造器(Constructor)模式
- 设计模式之构造器模式(Builder)
- 构造型设计模式
- Net框架中的设计模式之Builder(构造者)--兼谈抽象工厂和composite模式
- 设计模式之装饰者设计模式
- skb-4
- Android中使用加密图片的解决方案
- flume nginx 日志处理异常 JsonParseException: Unexpected character ('(' (code 40)): expected a valid value
- Xcode运行范例程序遇到的问题Command /bin/sh failed with exit code 1
- split 分割 字符串(分隔符如:* ^ : | , .) 及注意点
- 设计模式之:构造者模式
- 朴素贝叶斯
- 西门子S7-200 Smart PLC过程控制工控机数据记录与曲线显示系统
- UIStatusBarStyle PreferredStatusBarStyle does not work
- 可公度线段与欧几里得(Euclid)算法
- CocoaPods安装、卸载、使用说明(Mac ox 10.11+)
- Linux 最常用的操作命令
- skb-5
- 触发器trigger