文档章节

创建者模式

清尘V
 清尘V
发布于 2016/04/16 14:14
字数 364
阅读 13
收藏 0

创建者模式与工厂模式相似,但是创建者模式更倾向于细节:工厂模式只是生产汽车,而创建者模式则是倾向于组装汽车。

譬如说:生产一辆汽车,工厂模式仅仅是生产,不会透露细节;而创建者模式则是把轮子、引擎等部件组装为一部汽车。

下面看例子


汽车:

package com.whereta.builder;

/**
 * Vincent 创建于 2016/4/16.
 * 要组装的对象:汽车
 */
public class Car {
    /**
     * 引擎
     */
    private String engine;
    /**
     * 车轮
     */
    private String wheel;

    public String getEngine() {
        return engine;
    }

    public void setEngine(String engine) {
        this.engine = engine;
    }

    public String getWheel() {
        return wheel;
    }

    public void setWheel(String wheel) {
        this.wheel = wheel;
    }
}

创建者接口:

package com.whereta.builder;

/**
 * Vincent 创建于 2016/4/16.
 * 组装者接口
 */
public interface IBuilder {


    Car getCar();

    void buildWheel();

    void buildEngine();

}


创建者实现类:

package com.whereta.builder;

/**
 * Vincent 创建于 2016/4/16.
 */
public class BuilderImpl implements IBuilder {

    private Car car=new Car();

    public Car getCar() {
        System.out.println("车子组装好了");
        return car;
    }

    public void buildWheel() {
        System.out.println("开始组装车轮");
        car.setWheel("车轮");
    }

    public void buildEngine() {
        System.out.println("开始组装引擎");
        car.setEngine("引擎");
    }
}

指挥者:

package com.whereta.builder;

/**
 * Vincent 创建于 2016/4/16.
 */
public class Director {

    private  IBuilder builder;

    public void setBuilder(IBuilder builder) {
        this.builder = builder;
    }

    public void construct(){
        System.out.println("开始组装:");
        builder.buildEngine();
        builder.buildWheel();
    }

}

测试:

package com.whereta.builder;

import com.alibaba.fastjson.JSON;

/**
 * Vincent 创建于 2016/4/16.
 */
public class Main {
    public static void main(String[] args) {
        IBuilder builder=new BuilderImpl();
        Director director = new Director();
        director.setBuilder(builder);
        director.construct();
        Car car = builder.getCar();
        System.out.println(JSON.toJSONString(car));
    }
}

输出:

开始组装:
开始组装引擎
开始组装车轮
车子组装好了
{"engine":"引擎","wheel":"车轮"}

个人博客:http://www.whereta.com

© 著作权归作者所有

共有 人打赏支持
清尘V
粉丝 42
博文 107
码字总数 47780
作品 0
青岛
程序员

暂无文章

03-《Apache Tomcat 9 User Guide》之安装

1.Introduction There are several ways to set up Tomcat for running on different platforms. The main documentation for this is a file called RUNNING.txt. We encourage you to refe......

飞鱼说编程
16分钟前
1
0
Hbase 概述及特点

1、Hbase概述 HBase是一种构建在HDFS之上的分布式、面向列的存储系统。在需要实时读写、随机访问超大规模数据集时,可以使用HBase。 尽管已经有许多数据存储和访问的策略和实现方法,但事实上...

PeakFang-BOK
43分钟前
0
0
TortoiseGit(乌龟git)保存用户名密码的方法

windows下比较比较好用的git客户端有2种: 1. msysgit + TortoiseGit(乌龟git) 2. GitHub for Windows github的windows版也用过一段时间,但还是不太习惯。所以目前仍然青睐与msysgit+乌龟g...

simpower
今天
1
0
Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生...

engeue
今天
2
0
通过ajax访问远程天气预报服务

http://www.webxml.com.cn/zh_cn/index.aspx 更改wsdl文件 打开文件将15行,51行,101行去掉 然后把文件复制到c盘 然后在桌面上面就生成了文件 将文件打成jar包 package cn.it.ws.weather;...

江戸川
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部