Builder设计模式

Builder设计模式:个人认为,核心在于两个类。Builder类和Director类。通过Builder类和Director类,把万事万物抽象为部件和组装两部分。通过两部分的配合,把最终的产品,展示给客户。上图,只组装了一款产品。

公司做大以后,不仅可以提供一款产品。根据已有的功能多少和精简,可以快速生产出多种的产品,只要不同的construct和Product就可以了。construct提供了三个功能,说明这是一款lenovo的thinkpadT430笔记本电脑。如果construct只提供了一个show功能,那可能就是联想的平板了。

public interface Builder {
  
   void call();
  
   void show();
  
   void work();

   Product getResult();

}
public class Lenovo implements Builder {

   private Product lenovo;
   
   public void call() {
      // TODO: implement
       lenovo.setCallFun("lenovo call");
   }
   
   public void show() {
      // TODO: implement
       lenovo.setShowFun("lenovo show");
   }
   
   public void work() {
      // TODO: implement
       lenovo.setWorkFun("lenovo work");
   }
   
   public Product getResult() {
      // TODO: implement
      return this.lenovo;
   }
   
   public Lenovo() {
      // TODO: implement
      lenovo = new Product();
   }

}
public class Product {
  
   private String callFun;

   private String showFun;
  
   private String workFun;
   
   public String getCallFun() {
      return callFun;
   }
   
  
   public void setCallFun(String newCallFun) {
      callFun = newCallFun;
   }
   
   public String getShowFun() {
      return showFun;
   }
   
   public void setShowFun(String newShowFun) {
      showFun = newShowFun;
   }
   
   public String getWorkFun() {
      return workFun;
   }
   
   public void setWorkFun(String newWorkFun) {
      workFun = newWorkFun;
   }

}
public class Director {

   private Builder builder;
   
   public Director(Builder builder) {
      // TODO: implement
      this.builder= builder;
   }
   
   public void construct() {
      // TODO: implement
      builder.call();
      builder.show();
      builder.work();
   }

}
public class CallBuilder {

	private static Builder builder;

	private static Director director;

	private static Product product;

	public static void main(String[] args) {		

		builder = new Lenovo();
		director = new Director(builder);

		director.construct();
		product = builder.getResult();

		System.out.println(product.getCallFun());
		System.out.println(product.getShowFun());
		System.out.println(product.getWorkFun());

	}

}
时间: 2024-08-07 21:16:52

Builder设计模式的相关文章

建造者(Builder)设计模式

建造者(Builder)设计模式 1.0.0 产生建造者模式的原因 ????在类的数据特别复杂的时候,创建一个类需要花费很长的时间,因为有些类需要根据不同的场合进行不同的初始化.在类结构比较复杂,而且初始化比较困难的情况下,封装好的类创建步骤可以减少工作量,提高稳定性.这就是为什么需要建造者模式的原因. 2.0.0 什么是建造者模式? 将复杂对象的构建和对象的表示分离,使得同样的构建过程可以创建不同的表示. 3.0.0 建造模式的使用场景 复杂对象的创建(参数较多,而且比较初始化困难)--->创

Builder 设计模式的学习

Buileder(生成器)-对象创建型模式 一 意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 二 适用性 在以下情况使用Build模式: 1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时. 2 当构造过程必须允许被构造的对象有不同的表示时. 3 Builder模式要解决的也正是这样的问题: 当我们要创建的对象很复杂的时候(通常是由很多其他的对象组合而成), 我们要复杂对象的创建过程和这个对象的表示(展示)分离开来, 这样做的好处就是通过一

[DesignPattern]Builder设计模式

模式的定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 模式的使用场景 相同的方法,不同的执行顺序,产生不同的事件结果时: 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时: 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,这个时候使用建造者模式非常合适: Android源码中的模式实现 在Android源码中,我们最常用到的Builder模式就是AlertDialog.Builder, 使用该Builder来构建复杂的AlertD

builder 设计模式

1.经典的Builder模式 Product /** * 计算机抽象类, 即Product角色 */ public abstract class Computer { protected String mBoard; protected String mDisplay; protected String mOS; public Computer() { } public void setBoard(String board) { mBoard = board; } public void set

深入浅出设计模式 ------ Builder(生成器模式)

一. 定义  将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示. 二. 结构  三. 参与者 Builder : 为创建一个Product对象的各个部件指定抽象接口. ConcreteBuilder : 实现Builder的接口以构造和装配该产品的各个部件.定义并明确它所创建的表示.提供一个检索产品的接口. Director : 构造一个使用(聚合:has-a的关系)Builder接口的对象.如下文代码ChefDirector类. Product : 表示被构造的复杂对

深入浅出设计模式 ------ Builder(生成器)

一. 定义  将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示. 二. 结构  三. 参与者 Builder : 为创建一个Product对象的各个部件指定抽象接口. ConcreteBuilder : 实现Builder的接口以构造和装配该产品的各个部件.定义并明确它所创建的表示.提供一个检索产品的接口. Director : 构造一个使用(聚合:has-a的关系)Builder接口的对象.如下文代码ChefDirector类. Product : 表示被构造的复杂对

iOS设计模式FWZ

1.单例模式 2.Builder设计模式 4.原型模式 5.工厂方法模式 6.状态模式 7.解释器模式 8.责任编辑模式 9.命令模式 10.观察者模式 KVO 11.备忘录模式 12.迭代器模式 13.模板方法模式 14.访问者模式

建造者设计模式

建造者设计模式 内容列表: 建造者模式 建造者模式实现 示例代码 使用 jdk中的应用 建造者模式 和工厂.抽象工厂设计模式一样,builder设计模式也是对象创建类型中的一种.当创建的对象比较复杂的时候,特别是包含的属性比较多,工厂方法创建此类对象是比较麻烦的,builder是为了解决这类问题而引入的. 工厂方法创建此类对象时主要有以下几类问题需要解决: 当有很多参数的时候,特别是当这些参数比较多的时候,client在调用工厂类创建对象的时候很容易出错. 其中传递的参数,有些是必须要传递的,而

Android - 设计模式

从Android代码中来记忆23种设计模式 1 单例模式 单例模式可以说是最容易理解的模式了,也是应用最广的模式之一,先看看定义吧. 定义:确保单例类只有一个实例,并且这个单例类提供一个函数接口让其他类获取到这个唯一的实例. 什么时候需要使用单例模式呢:如果某个类,创建时需要消耗很多资源,即new出这个类的代价很大:或者是这个类占用很多内存,如果创建太多这个类实例会导致内存占用太多. 关于单例模式,虽然很简单,无需过多的解释,但是这里还要提个醒,其实单例模式里面有很多坑.我们去会会单例模式.最简