`

设计模式之建造者

阅读更多

 

/**
 * 建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以有不同的表示。
 * 建造者模式通常包括以下这几个角色:
    1、Builder:给出一个抽象接口,规范建造者对于生产的产品的各个组成部分的建造。这个接口只是定一个规范,不涉及具体的建造,具体的建造让继承于它的子类(ConcreteBuilder)去实现。
    2、ConcreteBuilder:实现builder接口,针对不同的商业逻辑,具体化各对象部分的建造,最后返回一个建造好的产品。
    3、Director:导演,顾名思义,负责规范流程之用。在指导中不涉及产品的创建,只负责保证复杂对象各部分被创建或按某种顺序创建。
    4、Product:复杂对象。
 *
 *使用建造者模式的好处
   1.使用建造者模式可以使客户端不必知道产品内部组成的细节。
    2.具体的建造者类之间是相互独立的,对系统的扩展非常有利。
    3.由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他的模块产生任何影响。
 *例如:   造桌子
 */
//桌子: 对象之间解耦合
public class Product {
 private Desktop desktop; //桌面
 private Deskleg deskleg; //桌腿
 
 public static void main(String args[]){
  
  //对于客户端而言,只需要关心具体的建造者,无需关心产品内部构建流程
  Builder builder = new Builder();
  Director director = new Director(builder);
  // 指挥者负责流程把控
  director.construct();
  // 建造者返回一个组合好的复杂产品对象
  Product desk = builder.getDesk();
 }

 public Desktop getDesktop() {
  return desktop;
 }

 public void setDesktop(Desktop desktop) {
  this.desktop = desktop;
 }

 public Deskleg getDeskleg() {
  return deskleg;
 }

 public void setDeskleg(Deskleg deskleg) {
  this.deskleg = deskleg;
 }
}

class Desktop{
 private int length;
 private int width;
 
 public int getLength() {
  return length;
 }
 public void setLength(int length) {
  this.length = length;
 }
 public int getWidth() {
  return width;
 }
 public void setWidth(int width) {
  this.width = width;
 }
}

class Deskleg{
 private int length; //长
 private int width;  //宽
 private int height; //高
 public int getLength() {
  return length;
 }
 public void setLength(int length) {
  this.length = length;
 }
 public int getWidth() {
  return width;
 }
 public void setWidth(int width) {
  this.width = width;
 }
 public int getHeight() {
  return height;
 }
 public void setHeight(int height) {
  this.height = height;
 }
}

public class Director {
 private AbstractBuilder builder;
 
 public Director(AbstractBuilder builder){
  this.builder = builder;
 }
 
 // 这个方法用来规范流程,产品构建和组装方法
    public void construct() {
        builder.buildDesktop();
        builder.buildDeskleg();
    }
}

public class Builder extends AbstractBuilder {
 private Product product;
 
 public Builder(){
  product = new Product();
 }

 //建造桌面
 void buildDesktop() {
  Desktop desktop = new Desktop();
  desktop.setLength(100);
  desktop.setWidth(80);
  
  product.setDesktop(desktop);
 }
 
 //建造桌腿
 void buildDeskleg() {
  Deskleg deskleg = new Deskleg();
  deskleg.setHeight(120);
  deskleg.setLength(10);
  deskleg.setWidth(10);
  
  product.setDeskleg(deskleg);
 }
 
 public Product getDesk(){
  return product;
 }
}

public abstract class AbstractBuilder {
 abstract void buildDesktop();
 abstract void buildDeskleg();
}

分享到:
评论

相关推荐

    设计模式之建造者Builder模式

    **建造者模式(Builder Pattern)**是软件设计模式中的一种,属于创建型模式。它将复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式通常用于那些需要大量构造参数的对象,通过...

    C#设计模式之建造者模式

    以下是关于“C#设计模式之建造者模式”的详细说明。 **建造者模式的核心概念** 1. **产品类(Product)**: 这是最终要创建的对象,比如在本实例中可能是`Actor`类,代表一个角色。产品类通常包含多个组成部分,...

    设计模式之建造者模式代码示例

    建造者模式(Builder Pattern)是软件工程中一种用于创建对象的抽象工厂方法,它将复杂的构建过程分解为一系列步骤,使得构建过程可以独立于其表示进行。这种模式允许客户端使用相同的构建过程创建不同表现形式的...

    设计模式之建造者模式

    建造者模式是软件设计模式中的一种,属于创建型模式,它的主要目的是将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在Java的23种设计模式中,建造者模式是一个非常实用且重要的模式。 ...

    [创建型模式]设计模式之建造者模式(Builder Pattern)

    【创建型模式】设计模式之建造者模式(Builder Pattern) 建造者模式(Builder Pattern)是设计模式中的一个创建型模式,它提供了一种方法来分步骤构造复杂的对象,使得构造过程和表示分离,使得同样的构建过程可以...

    原创:设计模式之建造者模式生动实例

    建造者模式,是设计模式中的一种创建型模式,它的核心思想是将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在Java编程中,这种模式经常用于生成对象,特别是当对象的创建过程较为复杂时,...

    C#设计模式之建造者(Builder)模式示例源代码

    在深入探讨C#设计模式中的建造者(Builder)模式之前,我们先来理解一下什么是设计模式。设计模式是在软件工程中解决常见问题的一种通用可重用解决方案,它们提供了一种标准化的方法来解决软件开发中遇到的挑战。...

    设计模式——建造者模式

    建造者模式是一种结构型设计模式,它允许我们分步骤创建复杂对象,而无需暴露构建过程的内部细节。这种模式在Java编程中非常常见,尤其是在处理需要多种构建方式或需要隔离对象构造过程的场景。 建造者模式的核心...

    Java创建型设计模式之建造者模式详解.rar

    建造者模式是软件设计模式中的一种,属于创建型模式,它的主要目的是将对象的构建过程与表示分离,使得相同的构建过程可以创建不同的表示。在Java中,建造者模式经常用于构造复杂对象,通过一步一步地创建对象,使得...

    69-Java设计模式之建造者 Builder1

    建造者模式(Builder Pattern)是Java设计模式中的一种,它属于创建型模式,主要用于构建复杂的对象。这种模式将对象的创建过程与表示分离,使得同样的创建过程可以创建不同的表示。在实际开发中,当我们需要创建的...

    Java设计模式之建造者模式实例详解

    "Java设计模式之建造者模式实例详解" 本文主要介绍了Java设计模式之建造者模式,结合具体实例形式分析了建造者模式的概念、原理、实现方法与相关使用注意事项。 建造者模式的概念 建造者模式(Builder Pattern)...

    C#设计模式之建造者模式实例:各大佬打造取经人,观音找到光头的唐三藏和中分的悟空

    在建造者模式中,有以下几个角色: 产品(Product):表示被构建的复杂对象。通常包含多个部分或组件。 抽象建造者(Builder):定义构建产品的抽象接口,包含创建和组装产品的方法。 具体建造者(Concrete Builder...

    Python设计模式之建造者模式实例详解

    本文实例讲述了Python设计模式之建造者模式。分享给大家供大家参考,具体如下: 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 下面是一个建造者模式的...

    JavaScript设计模式之建造者模式实例教程

    本文实例讲述了JavaScript设计模式之建造者模式。分享给大家供大家参考,具体如下: 一、建造者模式模式概念 建造者模式可以将一个复杂的对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。也就是说...

    设计模式-建造者模式

    建造者模式(Builder Pattern)是一种创建型设计模式,它提供了一种方法来分步骤构建复杂的对象,使得构建过程和表示分离,使得同样的构建过程可以创建不同的表示。这种模式经常在对象的构造过程中需要进行多种选择...

    JAVA设计模式之建造者模式原理与用法详解

    JAVA设计模式之建造者模式原理与用法详解 一、概述 JAVA设计模式之建造者模式是创建型模式的一种,它将复杂对象的构造与它的实现相分离,让相同的构建过程可以创建不同的对象。这使得建造者模式非常适合复杂对象的...

    Java设计模式-建造者模式详解

    Java设计模式-建造者模式详解 Java设计模式-建造者模式详解将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式(Builder)是使用多个“小型”工厂来最终创建出一个完整对象。...

    设计模式实验报告-建造者

    建造者模式是一种软件设计模式,属于创建型模式之一,主要用于解决创建复杂对象的问题。在实际应用中,当对象的构造过程过于复杂,涉及到多个属性或者子对象的组合时,直接通过构造函数创建可能会导致代码混乱、难以...

Global site tag (gtag.js) - Google Analytics