`
ayaya
  • 浏览: 456647 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

创建模式--Builder模式

阅读更多
简单地说,就好象我要一座房子住,可是我不知道怎么盖(简单的砌墙,层次较低),也不知道怎么样设计(建几个房间,几个门好看,层次较高),于是我需要找一帮民工,他们会砌墙,还得找个设计师,他知道怎么设计,我还要确保民工听设计师的领导,而设计师本身也不干活,光是下命令,这里砌一堵墙,这里砌一扇门,这样民工开始建设,最后,我可以向民工要房子了。在这个过程中,设计师是什么也没有,除了他在脑子里的设计和命令,所以要房子也是跟民工要,记住了!

以下是richardluo的代码,我根据他的思路加上了相应的注释。

1,定义工人接口,就是能够完成建造房子任务的人的通用要求。
java 代码
 
  1. // 工人接口,定义了各个工人所要进行的工所作。他们负责进行具体部件如窗户,地板的建造。
  2. // 同时因为房子是民工建的,因此建设完成后由他把房子递交回房主
  3. public interface Builder {  
  4.     
  5.   public  void makeWindow();  
  6.   
  7.   public  void makeFloor();  
  8.   
  9.   public  Room  getRoom();  
  10. }  

2,定义设计师,他的职责是指挥房主指派给他的工人按照自己的设计意图建造房子。
java 代码
 
  1. // 设计师。他知道房子应该怎么设计,但他不会自己去建造,而是指挥民工去建造。  
  2. public class Designer {  
  3.   
  4.   // 指挥民工进行工作  
  5.   public void order(Builder  builder) {  
  6.     builder.makeWindow();  
  7.     builder.makeFloor();  
  8.   }  
  9. }  

3,民工,他负责具体事物的实施。
java 代码
 
  1. // 民工。负责进行具体部件如窗户,地板的建造。
  2. //同时因为房子是民工建的,因此建设完成后由他把房子递交回房主  
  3. public class Mingong  implements Builder {  
  4.   private  String window="";  
  5.   private  String floor="";  
  6.     
  7.   public  void makeWindow() {  
  8.     window=new String("window");  
  9.   }  
  10.   
  11.   public  void makeFloor(){  
  12.     floor=new String("floor");  
  13.   }  
  14.    
  15.   // 回交房子给房主  
  16.   public  Room  getRoom() {  
  17.     if((!window.equals(""))&&(!floor.equals(""))) {  
  18.       System.out.println("room ready!");  
  19.       return new Room();  
  20.     }  
  21.     else return null;  
  22.   }  
  23. }  

4,房主,就是雇人,收房。
java 代码
 
  1. // 房主。房主的任务就是聘请一个民工,一个设计师,同时把民工给设计师指挥,督促设计师开展工作。最后从民工手上收房。    
  2. public class Client {    
  3.     
  4.   public static void main(String[] args) {    
  5.      Builder mingong = new Mingong();    
  6.      Designer  designer = new  Designer();    
  7.      designer.order(mingong);    
  8.      mingong.getRoom();    
  9.   }    
  10. }   

分享到:
评论

相关推荐

    设计模式-Builder模式demo

    在这个"设计模式-Builder模式demo"中,我们可以期待看到以下内容: 1. **Product类**:代表要构建的复杂对象,可能包含多个部分或属性。例如,一个Product可能是汽车类,拥有引擎、轮胎等属性。 2. **Builder接口*...

    设计模式-创建者模式(Builder)

    设计模式-创建者模式(Builder) 创建者模式(Builder)是软件设计模式中的一种结构型模式,它将一个复杂对象的构造与它的表示分离,使得同样的构建过程可以创建不同的表示。该模式允许用户可以只通过指定复杂对象...

    前端开源库-swint-builder-html

    2. **初始化项目**:在项目目录下运行 Swint-Builder-HTML 初始化命令,创建配置文件。 ``` swint-builder-html init ``` 3. **配置**:编辑生成的配置文件,根据项目需求设置模板路径、输出路径、编译选项等。...

    设计模式之创建模式Builder

    建造者模式(Builder Pattern)是设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,而无需暴露其构造过程。这种模式的核心思想在于将对象的构建与表示分离,使得构建过程和不同表示可以独立变化,提高...

    c++设计模式-创建型模式-建造者模式

    **建造者模式(Builder Pattern)**是软件设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,而无需暴露构建过程。在C++中,这种模式常用于将对象的创建过程与使用过程分离,使得对象的构建更加灵活,...

    (创建型模式)Builder模式

    Builder模式是一种创建型设计模式,它提供了一种方法来分步骤构建复杂的对象,使得构建过程和表示分离。这种模式在程序开发中常用于构造产品对象,尤其是当对象的构造过程较为复杂时,Builder模式能够帮助我们更好地...

    angular的表单设计器 angular-form-builder

    Angular-Form-Builder是一个强大的工具,用于在Angular应用程序中动态创建和管理表单。它允许开发者通过拖放的方式构建复杂的表单结构,无需手动编写大量的HTML和TypeScript代码。这个库特别适合那些需要高度可配置...

    设计模式 创建型模式 Builder模式(建造者)

    Builder模式 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 统设计中,有时候面临着一个“复杂系统”的创建工作,该对象通常由各个部分的子对象用一定的算法构成,或者说按一定的...

    前端开源库-swint-builder-svg

    2. **配置**:创建一个配置文件(如`svg.conf.json`),指定输入目录(含SVG文件)、输出目录以及CSS样式等选项。 3. **运行**:在命令行中执行构建命令,例如: ``` npx swint-builder-svg -c svg.conf.json `...

    【IT十八掌徐培成】Java基础第10天-02.builder设计模式-StringBuilder-包装类.zip

    结合Builder模式,我们可以构建一个用于创建复杂对象的Builder类,其中包含对`StringBuilder`的使用,以生成包含各种包装类对象的字符串表示。例如,我们可以定义一个`PersonBuilder`,包含`buildName()`、`buildAge...

    scenebuilder-2.346556-macosx.dmg.zip

    JavaFX Scene Builder是一款强大的图形用户界面(GUI)构建工具,专为JavaFX平台设计,用于帮助开发者快速、直观地创建应用程序的用户界面。这个“scenebuilder-2.346556-macosx.dmg.zip”文件是适用于Mac操作系统的...

    23种设计模式的java实现-Builder

    Builder模式的核心思想是将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式通常应用于当创建对象的过程非常复杂,或者需要按步骤进行时,例如在数据库连接、XML解析或者图形用户...

    【Java 设计模式-源码】Builder 模式:在 Java 中清晰构建自定义对象

    在 Java 开发中,Builder 模式是一种强大的创建型模式,它允许我们逐步构建复杂的对象。本文将详细介绍 Builder 模式的意图、解释、编程示例、适用场景以及实际应用。同时,还将提供示例代码的下载链接,方便读者...

    builder-generator-idea-plugin,.zip

    Builder模式是一种创建型设计模式,常用于对象实例化过程的复杂性管理,使得创建过程更加清晰,易于维护。这款插件通过自动化生成这一模式,大大减少了手动编码的工作量,提高了代码质量。 二、主要功能 1. 自动化...

    Builder模式

    3. 在产品创建过程中需要使用系统中的其他对象,且这些对象在创建过程中不易获取时,Builder模式可以封装这部分细节,使得创建过程更加清晰和可控。 #### 优点 - **内部表象独立变化**:Builder模式允许产品的内部...

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

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

    创建型——Builder模式

    Builder模式是一种创建型设计模式,它提供了一种创建对象的灵活方式,将对象的构建过程与表示分离。这种模式在复杂对象的构造过程中特别有用,因为它允许我们通过不同的步骤来构造对象,而不会让客户端代码受到这些...

    javafx_scenebuilder-2_0安装包

    JavaFX自身是Oracle Java平台的一个组件,用于创建丰富的、动态的、跨平台的桌面和Web应用程序。Scene Builder允许开发者通过拖放方式快速布局和设计UI元素,而无需编写大量的代码,极大地提升了开发效率。 JavaFX ...

    java设计模式---诙谐易懂版

    代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式(...模式(Builder Pattern)、桥梁模式(Bridge Pattern)、命令模式(Command Pattern)、装饰模式(Decorator Pattern)、迭代器模式...

    毕业设计----日记本-----C++Builder----Access

    此外,C++Builder还支持RAD(Rapid Application Development)模式,通过拖放控件和编写事件处理代码,能高效地实现应用开发。 2. **面向对象编程**:C++Builder基于C++,因此支持面向对象编程(OOP)概念,如类、...

Global site tag (gtag.js) - Google Analytics