package com.tn.pattern;

 public class Client {
public static void main(String[] args) {
Director director=Director.getInstance();
director.construct(new ConcreteBuilder1());
director.construct(new ConcreteBuilder2());
}
} class Director{
static Director director;
private Director(){}
public static Director getInstance(){
if(director==null)
director=new Director();
return director;
}
public void construct(Builder builder){
builder.buildPart1();
builder.buildPart2();
}
} interface Builder{
void buildPart1();
void buildPart2();
Product retrieveResult();
} class ConcreteBuilder1 implements Builder{
Product product;
@Override
public void buildPart1() {
System.out.println("ConcreteBuilder1.buildPart1()");
product=new Product1();
} @Override
public void buildPart2() {} @Override
public Product retrieveResult() {
return product;
}
} class ConcreteBuilder2 implements Builder{
Product product;
@Override
public void buildPart1() {} @Override
public void buildPart2() {
System.out.println("ConcreteBuilder2.buildPart2()");
product=new Product2();
} @Override
public Product retrieveResult() {
return product;
}
} interface Product{} class Product1 implements Product{
public Product1(){
System.out.println("Product1.Product1()");
}
} class Product2 implements Product{
public Product2(){
System.out.println("Product2.Product2()");
}
}

最新文章

  1. Linux FHS
  2. openlayers方法总结
  3. Python操作文件文档
  4. Android学习--摘录
  5. 【Win10 UWP】QQ SDK(一):SDK基本使用方法
  6. sina发现并不会去导入qq使用的
  7. C程序设计语言--指针和引用的区别
  8. 编写程序,从vector<char>初始化string
  9. ElasticSearch的Marvel更新license
  10. python学习笔记 函数
  11. spring为什么推荐使用构造器注入?
  12. Git(使用码云)
  13. 解决github访问及上传慢的问题
  14. 多线程Task
  15. poi 创建excel数据
  16. Net::HTTP 一次添加 cookie, body 发送post请求
  17. 发布网站的时候发现360极速浏览器ie7内核不兼容样式的问题
  18. java第五天
  19. OpenStack高可用方案及配置
  20. 【Spark】编程实战之模拟SparkRPC原理实现自定义RPC

热门文章

  1. 实战项目——mysql主从架构的实现
  2. riot.js教程【六】循环、HTML元素标签
  3. Python 面向对象(四) 反射及其魔术方法
  4. Python 学习之路
  5. a标签嵌套解决方案
  6. 《java.util.concurrent 包源码阅读》06 ArrayBlockingQueue
  7. javascript 复制数组
  8. HTML的iframe标签妙用 - 在线执行前端代码的网站原理是什么?
  9. Linux上安装 MongoDB ZK MEMCACHE PHP扩展
  10. CDH集群搭建部署