• 通俗讲解: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,表示构建成功。
    }
    }
    复制代码
  • 相关阅读:
    Druid连接池的简单使用
    JDBC工具包commons-dbutils的基本介绍
    Java IO: ByteArrayOutputStream使用
    开源数据库连接池之Tomcat内置连接池
    jquery里面的$(this)和this的区别
    css自定义属性(css变量)
    CSS选择器
    IntelliJ IDEA 学习笔记
    JSP基本的语法、3个编译指令、7个动作指令、9个内置对象
    CSS3 box-shadow
  • 原文地址:https://www.cnblogs.com/makeryan/p/2498284.html
Copyright © 2020-2023  润新知