模式对象GoF23种设计模式之创建型模式之建造者模式
2013-05-30 21:13
543 查看
工作之余抽点时间出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一起学习一下模式对象
一、概述
将一个复杂对象的构建与其表示分离开来,使得同样的构建进程可以创立不同的表示。
二、适用性
1.当创立复杂对象的算法应当独立于该对象的构成部分以及它们的装配方式的时候。
2.当结构进程必须答应被结构的对象有不同的表示的时候。
三、参与者
1.Builder:为创立一个Product对象的各个部件指定抽象接口。
2.ConcreteBuilder:实现Builder接口以结构和装配该产品的各个部件。
3.Director:结构一个使用Builder接口的对象。
4.Product:表示被结构的复杂对象。ConcreteBuilder创立该产品的外部表示并定义它的装配进程。包括定义构成部件的类,以及将这些部件装配成终究产品的接口。
四、类图
![](http://img.blog.csdn.net/20130530151503325)
五、示例
Builder
ConcreteBuilder
Director
每日一道理
心是一棵树,爱与希望的根须扎在土里,智慧与情感的枝叶招展在蓝天下。无论是岁月的风雨扑面而来,还是滚滚尘埃遮蔽了翠叶青枝,它总是静默地矗立在那里等待,并接受一切来临,既不倨傲,也不卑微。
心是一棵树,一个个故事被年轮携载;一回回驿动与飞鸟相约;一次次碰撞使它绵密柔韧;一幕幕经历造就了它博广的胸怀。心是一棵树,独木不成林。因此,树与树既独立又相联,心与心既相异又相亲。
Product
Test
Result
文章结束给大家分享下程序员的一些笑话语录: 手机终究会变成PC,所以ip会比wm更加畅销,但是有一天手机强大到一定程度了就会发现只有wm的支持才能完美享受。就好比树和草,草长得再高也是草,时间到了条件成熟了树就会窜天高了。www.ishuo.cn
---------------------------------
原创文章 By
模式和对象
---------------------------------
一、概述
将一个复杂对象的构建与其表示分离开来,使得同样的构建进程可以创立不同的表示。
二、适用性
1.当创立复杂对象的算法应当独立于该对象的构成部分以及它们的装配方式的时候。
2.当结构进程必须答应被结构的对象有不同的表示的时候。
三、参与者
1.Builder:为创立一个Product对象的各个部件指定抽象接口。
2.ConcreteBuilder:实现Builder接口以结构和装配该产品的各个部件。
3.Director:结构一个使用Builder接口的对象。
4.Product:表示被结构的复杂对象。ConcreteBuilder创立该产品的外部表示并定义它的装配进程。包括定义构成部件的类,以及将这些部件装配成终究产品的接口。
四、类图
五、示例
Builder
package cn.lynn.builder; public interface IPersonBuilder { public void buildHead(); public void buildBody(); public void buildFoot(); public Person buildPerson(); }
ConcreteBuilder
package cn.lynn.builder; public class ManBuilder implements IPersonBuilder { private Person person; public ManBuilder() { person = new Man(); } @Override public void buildHead() { person.setHead("制作男人的头"); } @Override public void buildBody() { person.setBody("制作男人的身体"); } @Override public void buildFoot() { person.setFoot("制作男人的脚"); } @Override public Person buildPerson() { return person; } }
Director
每日一道理
心是一棵树,爱与希望的根须扎在土里,智慧与情感的枝叶招展在蓝天下。无论是岁月的风雨扑面而来,还是滚滚尘埃遮蔽了翠叶青枝,它总是静默地矗立在那里等待,并接受一切来临,既不倨傲,也不卑微。
心是一棵树,一个个故事被年轮携载;一回回驿动与飞鸟相约;一次次碰撞使它绵密柔韧;一幕幕经历造就了它博广的胸怀。心是一棵树,独木不成林。因此,树与树既独立又相联,心与心既相异又相亲。
package cn.lynn.builder; public class PersonDirector { public Person constructPerson(IPersonBuilder builder) { builder.buildHead(); builder.buildBody(); builder.buildFoot(); return builder.buildPerson(); } }
Product
package cn.lynn.builder; public class Person { private String head; private String body; private String foot; public String getHead() { return head; } public void setHead(String head) { this.head = head; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public String getFoot() { return foot; } public void setFoot(String foot) { this.foot = foot; } }
package cn.lynn.builder; public class Man extends Person { }
Test
package cn.lynn.builder; public class Test { public static void main(String[] args) { PersonDirector director = new PersonDirector(); Person person = director.constructPerson(new ManBuilder()); System.out.println(person.getHead()); System.out.println(person.getBody()); System.out.println(person.getFoot()); } }
Result
制作男人的头 制作男人的身体 制作男人的脚
文章结束给大家分享下程序员的一些笑话语录: 手机终究会变成PC,所以ip会比wm更加畅销,但是有一天手机强大到一定程度了就会发现只有wm的支持才能完美享受。就好比树和草,草长得再高也是草,时间到了条件成熟了树就会窜天高了。www.ishuo.cn
---------------------------------
原创文章 By
模式和对象
---------------------------------
相关文章推荐
- GoF23种设计模式之创建型模式之建造者模式
- GoF23种设计模式之创建型模式之建造者模式
- GoF23种设计模式之创建型模式之建造者模式
- GoF23种设计模式之创建型模式之工厂方法模式
- GoF23种设计模式之创建型模式之抽象工厂模式
- 23种设计模式2--创建型模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式)
- GoF23种设计模式之创建型模式之抽象工厂模式
- 23种设计模式----创建型模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式)
- GoF23种设计模式之创建型模式之单态模式
- 工厂方法模式GoF23种设计模式之创建型模式之工厂方法模式
- GoF23种设计模式之创建型模式之单态模式
- 【23种设计模式】创建型模式 > 建造者模式
- 设计模式之创建型模式——简单工厂(又称为静态工厂不属于GOF23种设计模式以内)
- GoF23种设计模式之创建型模式之工厂方法模式
- GoF23种设计模式之创建型模式之工厂方法模式
- GoF23种设计模式之创建型模式之原型模式
- GoF23种设计模式之创建型模式之原型模式
- 23种设计模式四:创建型建造者模式
- GoF23种设计模式之创建型模式之原型模式
- GoF23种设计模式之创建型模式之单态模式