一日一摸之第三日:Builder模式

原创 2007年09月13日 23:03:00

使用Builder模式的目的就在于将构建复杂对象的过程和它的部件解耦,是解耦过程和部件,是为了将部件和组装过程分开。

Builder模式参与者:

1、  Builder,抽象工人

规定产生对象实例的接口

2concreteBuilder,从事实际工作的工人

实现Builder接口,实现具体的业务逻辑

3、  Director,设计规划者

利用Builder接口产生对象实例,使用builder中定义的方法

4、  Client,最终客户

实例

public class BuilderSample{

     public static void main(String[] args){

            Director d = new Director(new Windows_windowBuilder());

            System.out.println(d.createProduct().getView());

     }

}

 

class Window

{ private String title;

  private String button;

  private String text;

 

  public void setTitle(String s){

       this.title = s;

  }

  public void setButton(String s){

       this.button = s;

  }

  public void setText(String s){

       this.text = s;

  }

 

  public String getView(){

       return "Title:"+title+" Button:"+button+" Text:"+text;

  }

 

}

interface WindowBuilder{

    public String createTitle(String s);

    public String createButton(String s);

    public String createText(String s);

     public Window createWindow();

}

 

class Windows_windowBuilder implements WindowBuilder{

 

     Window awindow = new Window();

 

     public String createTitle(String s){

            System.out.println("Create a window Title:"+s);

            return "window's title:"+s;           

           

     }

 

     public String createButton(String s){

            System.out.println("Create a window Button:"+s);

            return "window's button:"+s;

     }

 

     public String createText(String s){

            System.out.println("Create a window Text:"+s);

            return "window's Text:"+s;

     }

 

     public Window createWindow(){

            awindow.setTitle(createTitle("title"));

            awindow.setButton(createButton("button"));

            awindow.setText(createText("text"));

            return awindow;

     }

}

 

 

class Director

{

     WindowBuilder builder = null;

     public Director(WindowBuilder b){

            this.builder = b;

     }

 

     public Window createProduct(){

            return builder.createWindow();

     }

}

 

小结:

1、复杂资源的“断肢”的回收再利用。

2、工厂模式是一个生产零件的产商,可以生产一个一种零部件,而builder模式是一个集成商,它生产出来的是成品。

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【日常】摸一摸怎样把LOL修改成英文版

RT

设计模式一日一练:观察者模式(Observer)

观察者模式(Observer),定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
  • ynnmnm
  • ynnmnm
  • 2014-04-23 01:35
  • 1066

一日一设计模式之C++篇(Build模式)

公司的火影手游项目美术资源还没有到位,所有最近闲着没事在看C++的设计模式。虽然现在工作一直在用unity3d下写C#脚本,但是一直以来对C++的情有独钟让我坚持用C++的角度去看待软件开发。设计模式...

设计模式一日一练:原型模式(Prototype)

原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

设计模式一日一练:中介者模式(Mediator)

中介者(Mediator)模式

Builder模式

  • 2013-01-11 14:05
  • 237KB
  • 下载

1.2 Builder(生成器) -- 对象创建型模式

在内蒙古这辽阔的草原上,放养着成千上万的奶牛。蒙牛集团在这里崛起,迅速抢占中国大半牛奶市场,造就了一个商业帝国。蒙牛集团牛奶生产流程大致是这样的: 放养奶牛--->牛奶加工--->牛奶包装--->销售...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)