建造模式Builder

/**
* 抽象建造者
*/
public abstract class Builder { public abstract void buildPart1(); public abstract void buildPart2(); public abstract Product retrieveResult(); }
/**
* 具体建造着
*/
public class ConcreteBuilder extends Builder { private Product product = new Product(); @Override
public void buildPart1() { } @Override
public void buildPart2() { } @Override
public Product retrieveResult() {
return product;
} }
/**
* 产品
*/
public class Product { }
/**
* 导演着
*/
public class Director { private Builder builder; public void construct() {
builder = new ConcreteBuilder();
builder.buildPart1();
builder.buildPart2();
builder.retrieveResult();
} }
public class TestBuilder {

	public static void main(String[] args) {
ConcreteBuilder concreteBuiler = new ConcreteBuilder();
Director director = new Director();
director.construct();
Product product = concreteBuiler.retrieveResult();
} }

建造模式Builder的更多相关文章

  1. 《JAVA设计模式》之建造模式(Builder)

    在阎宏博士的<JAVA与模式>一书中开头是这样描述建造(Builder)模式的: 建造模式是对象的创建模式.建造模式可以将一个产品的内部表象(internal representation ...

  2. 【java设计模式】【创建模式Creational Pattern】建造模式Builder Pattern

    package com.tn.pattern; public class Client { public static void main(String[] args) { Director dire ...

  3. 浅谈设计模式--建造器模式(Builder Pattern)

    建造器模式,是于创建带有大量参数的对象,并避免因参数数量多而产生的一些问题(如状态不一致-JavaBean的setter模式). 如果参数多且有些是必须初始化的,有些是不一定需要初始化的时候,创建对象 ...

  4. 设计模式(5)--Builder(建造模式)--创建型

    1.模式定义: 建造模式是对象的创建模式.建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品 ...

  5. Java建造(Builder)模式

    一.什么是建造模式: 建造模式可以将一个产品的内部表象与产品的生成过程分割开来,从而使一个建造过程生成具有不同内部表象的产品.客户端不需要知道产品内部的结构和生产过程. 二.建造模式的结构: Buil ...

  6. 设计模式之——Builder建造模式

    Builder模式又叫建造模式,是用于组装具有复杂结构的实例的模式. 示例程序是编写一个文档,并且写入到文件中,该文档具有以下结构,含有标题,字符串,一些条目. Builder抽象类,为建造模式的核心 ...

  7. 3.建造模式(Builder)

    注:图片来源于 https://www.cnblogs.com/-saligia-/p/10216752.html 建造模式UML图解析: 代码: Director.h // // Created b ...

  8. 23种设计模式--建造者模式-Builder Pattern

    一.建造模式的介绍       建造者模式就是将零件组装成一个整体,用官方一点的话来讲就是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示.生活中比如说组装电脑,汽车等等这些都是建 ...

  9. 六个创建模式之建造者模式(Builder Pattern)

    定义: 将一个复杂的对象的构建与它的表示分类,使得同样的构建过程可以创建不同的表示.建造者模式一步步地创建一个复杂对象,但用户仅需指定对象的类型和内容,不需要关心各个部分之间的关联关系. 结构图: B ...

随机推荐

  1. 下拉刷新列表添加SwipeDismissListViewTouchListener实现滑动删除某一列。

    <Android SwipeToDismiss:左右滑动删除ListView条目Item> Android的SwipeToDismiss是github上一个第三方开源框架(github上的 ...

  2. bzoj 2257: [Jsoi2009]瓶子和燃料

    #include<cstdio> #include<iostream> #include<algorithm> #include<cmath> usin ...

  3. net IL的一些探索

    查看IL有2个工具比较好用,一个是大名鼎鼎的Reflector,但已经转向收费,另一个是开源的ILSpy,强大好用,对linq和lambda表达示的支持很好.相关的书籍也很多,比如这本Microsof ...

  4. Struts2 的验证

    概述 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 –基于 XWork Validation Framework 的声明式验证:Struts2 提供了一些基 ...

  5. struts中拦截器的开发

    1.开发Interceptor类 用户自定义的拦截器一般需要继承AbstractInterceptor类,重写intercept方法 public class UserInterceptor exte ...

  6. (转载)java常见的ClassNotFoundException

    1 - java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory   添加包common-logging.jar2 ...

  7. Snagit 12 – 功能强的老牌截图软件

    老牌截图软件 Snagit 12 新版正式发布,相比旧版,Snagit 12 界面变得更加简洁,深色的配色增加了专业感,也更加舒服. 在功能上,Snagit 大幅简化了用户体验,不需要复杂的操作,只需 ...

  8. SharePoint 2013 开发——APP开发的考虑和建议

    博客地址:http://blog.csdn.net/FoxDave 需要考虑的方面: 1. 记得CSOM授予网站集及以下的权限,而场解决方案需要整个场的访问权限. 2. 由于应用程序是彼此完全独立 ...

  9. 关于Json处理的两个实例

    <script> var value1="{\"layer_datum\":{\"holdId\":\"dcdm\", ...

  10. C#语法问答式总结

    传入某个属性的set方法的隐含参数的名称是什么?value,它的类型和属性所声名的类型相同. 如何在C#中实现继承?在类名后加上一个冒号,再加上基类的名称. C#支持多重继承么?不支持.可以用接口来实 ...