zoukankan      html  css  js  c++  java
  • 通俗讲解:Builder模式的理解

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

      就象国内好多企业上erp一样,上erp,首先得找软件公司呀,找到软件公司后,软件公司说,我只知道怎么写软件,就知道怎么实现,不清楚整个erp的流程。好,那我们还得找一个咨询公司,好,找到德勤了,德勤说好,我要软件怎么做,软件公司怎么做,我就能保证软件能为你们提供erp系统了。

      此模式是为了让设计和施工解耦,互不干扰。

    public interface Builder
    {
    public void makeWindow();
    public void makeFloor();
    public Room getRoom();

    }


    /*************************************************************/
    package builder;

    public class Designer {

    public Designer() {
    }
    public void order(Builder builder)
    {
    builder.makeWindow();
    builder.makeFloor();

    }
    }

    /*************************************************************/
    package builder;
    public class Mingong implements Builder{
    private String window="";
    private String floor="";
    public Mingong() {
    }
    public void makeWindow(){
    window=new String("window");
    }
    public void makeFloor(){
    floor=new String("floor");
    }
    public Room getRoom()
    {
    if((!window.equals(""))&&(!floor.equals("")))
    {
    Room r = new Room();
    r.setFloor(floor);
    r.setWindow(window);
    return r;
    }
    else return null;
    }
    }

    /*************************************************************/
    package builder;
    public class Room {
    private String window="";
    private String floor="";
    public Room() {
    }
    public String getFloor() {
    return floor;
    }

    public void setFloor(String floor) {
    this.floor = floor;
    }

    public String getWindow() {
    return window;
    }

    public void setWindow(String window) {
    this.window = window;
    }
    }
    /*************************************************************/

    package builder;

    public class Client {

    public Client() {
    }
    public static void main(String[] args) {
    Builder mingong=new Mingong();
    Designer designer=new Designer();
    designer.order(mingong);
    Room r = mingong.getRoom();
    System.out.println(r.getWindow);//会输出window,表示构建成功。
    }
    }

     --------------------------------------------------------------------

    PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。

    --------------------------------------------------------------------



  • 相关阅读:
    将SL4 程序移植到WP7(附Teched2010“.NET研究”真机图) 狼人:
    WP7有约(二“.NET研究”):课后作业 狼人:
    Android平台SQLite快速入门“.NET研究”实践 狼人:
    移动Web界面构建最佳“.NET研究”实践 狼人:
    Androi“.NET研究”d如何在三年时间里征服移动世界的 狼人:
    详解如何让Android UI“.NET研究”设计性能更高效 狼人:
    Android 2.3预计下周发布 十大惊“.NET研究”喜不容错过 狼人:
    Android的移动存储解决方案“.NET研究”之SharedPreferences 狼人:
    C++开发者快速学习ObjectiveC语言核“.NET研究”心语法 狼人:
    图像像素OpenCV4Android一点关于图像的基础
  • 原文地址:https://www.cnblogs.com/devinzhang/p/2314714.html
Copyright © 2011-2022 走看看