设计模式 builder
将一个复杂的对象构建与他的表示分离,使同样的构建过程可以创建不同的表示
把创建和部件的创建分别开来
示例代码:
/**
* 部件实体
*
* @time 下午11:03:52
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public interface Part {}
/**
* 成品
*
* @time 下午11:05:14
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class Product {
public String name = "xxxx";
}
/**
* 创建各个部件和复杂对象的接口
*
* @time 下午10:56:16
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public interface Builder {
// 创建部件A
void buildPartA();
// 创建部件B
void buildPartB();
// 创建部件C
void buildPartC();
// 返回最后组装成品结果
Product getResult();
// 设置成品结果
void setResult(String str);
}
/**
* 创建各部件的具体实现
*
* @time 下午11:02:59
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class CreateBuilder implements Builder {
Part partA, partB, partC;
String str;
/************* 完成各部件的组装 *********************/
@Override
public void buildPartA() {
System.out.println("组装部件a");
}
@Override
public void buildPartB() {
System.out.println("组装部件b");
}
@Override
public void buildPartC() {
System.out.println("组装部件c");
}
/***************************************/
/**
* 返回组装成品结果
*/
@Override
public Product getResult() {
Product product = new Product();
product.name = str;
return product;
}
/**
* 设置成品结果F
*/
@Override
public void setResult(String str) {
this.str = str;
}
}
/**
* 创建复杂对象
*
* @time 下午10:59:41
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class Director {
Builder builder;
/**
* 构造器
*
* @param builder
*/
public Director(Builder builder) {
this.builder = builder;
}
// 组装成品的过程
public void construct() {
builder.buildPartA();
builder.buildPartB();
builder.buildPartC();
}
}
/**
* 创建复杂对象
*
* @time 下午10:59:41
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class Director {
Builder builder;
/**
* 构造器
*
* @param builder
*/
public Director(Builder builder) {
this.builder = builder;
}
// 组装成品的过程
public void construct() {
builder.buildPartA();
builder.buildPartB();
builder.buildPartC();
//设置组装结果
builder.setResult("success");
}
}
/**
* 测试调用builder模式
*
* @time 下午11:08:15
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class TestBuilder {
public class TestBuilder {
public static void main(String[] args) {
// 创建各部件的具体实现
CreateBuilder builder = new CreateBuilder();
// 创建复杂对象
Director director = new Director(builder);
// 组装成品
director.construct();
// 取得成品结果
Product product = builder.getResult();
System.out.println("组装成品" + product.name);
}
}
}
应用场景:”池“使资源得到循环利用,如上面实例,可以修改director类检查问题
出在哪个部件,然后修复这个部件
分享到:
相关推荐
Java设计模式学习笔记
总结了java开发中的21种设计模式,详解和例子,带书签的pdf格式,方便阅读!
学习Java设计模式的笔记,标注了其中重要的要点,如果有需要的小伙伴,自行下载哦
java设计模式的学习笔记,其中包含各种模式的代码实现
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...
图解java设计模式_学习笔记_java开发解压密码为twj123
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记
设计模式学习笔记,分析了GOF的23种模式和类设计的原则
韩顺平_Java设计模式笔记.docx
Java基础 java学习笔记 Java Java基础Markdown学习笔记,可转换成PDF、Word等格式
Java JDK 7学习笔记 PDF
我收集的设计模式的学习笔记,采用pdf格式,便于收藏和查看
根据《JAVA与设计模式》整理的笔记及示例代码。
各个模式都有详细的例子C#学习笔记,打开就知道了
23中java设计模式结合生活中用例进行讲解以及spring源码中存在的设计模式才知道原来设计模式如此重要,视频教程链接如下:https://study.163.com/course/courseMain.htm?courseId=1209569921,或者直接在网易云搜索...
JAVA程序设计学习笔记.pdf
该文档为java设计模式的整理笔记,有助于大家更详细了解java设计模式
Java 版设计模式学习笔记-java-design-patterns
JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记JAVA学习笔记