你的位置:首页 > 软件开发 > ASP.net > 生成器or建造者模式★★☆☆☆

生成器or建造者模式★★☆☆☆

发布时间:2016-01-28 17:00:04
一、什么是生成器模式对复杂对象的创建过程进行抽象,相同的创建步骤,不一样的创建过程实现,生成不同表示的对象;例如创建一台电脑,对其应用生成器模式进行创建:创建过程是指创建cpu、创建内存、创建显示器三个步骤,所有品牌电脑的创建过程都是一样的,可以对其抽象出一个抽象建造者角色Bui ...

一、什么是生成器模式

对复杂对象的创建过程进行抽象,相同的创建步骤,不一样的创建过程实现,生成不同表示的对象;

例如创建一台电脑,对其应用生成器模式进行创建:

创建过程是指创建cpu、创建内存、创建显示器三个步骤,所有品牌电脑的创建过程都是一样的,可以对其抽象出一个抽象建造者角色Builder;

不同厂商(指的是具体的Builder实现,不同厂商不一样)生产的电脑,表现出来是不一样的;

二、适用场合

被创建的对象内部结构比较复杂,且需要一步步构造

三、角色

  •  抽象建造者
  • 具体建造者
  • 指挥者
  • 产品
  • 产品消费者

说明:

具体建造者继承抽象建造者;

指挥者用于生成具体产品对象,且指挥者有一个建造者属性可以设置更改;

一个指挥者,只要其建造者不一样,生成的产品对象的表现也不一样;

产品消费者使用指挥者生成的具体产品对象;

四、例子

demo说明:

以生产PC为例,这里我们假设生产一台PC只需三个步骤,创建cpu、创建内存、创建显示器,将三个步骤抽象成一个Builder,且该Builder有一个创建待加工的产品的方法和返回成品的方法;

以联想电脑和惠普电脑为例,认为它们在生产电脑的过程中,以上三个步骤的实现是不一致的,对应着具体的HPBuilder和LenovoBuilder;

同时,我们把电脑产品封装成Computer类,其拥有cpu、内存、显示器三个属性;

然后,再创建一个指挥者类Director,其拥有一个建造者对象和建造PC产品的方法construct,该方法通过具体建造者对象,依次执行每个步骤,最后返回建造完成的产品对象;

类图:

生成器or建造者模式★★☆☆☆

代码实现:

产品角色

生成器or建造者模式★★☆☆☆生成器or建造者模式★★☆☆☆
package com.pichen.dp.creationalpattern.builder;public class Computer {  private String cpu;  private String ram;  private String monitor;  /**   * @return the cpu   */  public String getCpu() {    return cpu;  }  /**   * @param cpu the cpu to set   */  public void setCpu(String cpu) {    this.cpu = cpu;  }  /**   * @return the ram   */  public String getRam() {    return ram;  }  /**   * @param ram the ram to set   */  public void setRam(String ram) {    this.ram = ram;  }  /**   * @return the monitor   */  public String getMonitor() {    return monitor;  }  /**   * @param monitor the monitor to set   */  public void setMonitor(String monitor) {    this.monitor = monitor;  }    public String toString(){    return "PC:" + this.cpu + ", " + this.ram + ", " + this.monitor;  }}

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:生成器or建造者模式★★☆☆☆

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录