GoF23种设计模式之创建型模式之建造者模式
来源:互联网 发布:淘宝店铺开通花呗要求 编辑:程序博客网 时间:2024/05/05 16:41
一、概述
将一个复杂对象的构建与其表示分离开来,使得同样的构建过程可以创建不同的表示。
二、适用性
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
建造男人的头建造男人的身体建造男人的脚
- GoF23种设计模式之创建型模式之建造者模式
- GOF23设计模式之 建造者模式
- GOF23之建造者模式Demo
- 设计模式之创建型模式---建造者模式
- Java设计模式之创建型模式--建造者模式
- 设计模式 创建模式之建造模式
- GoF23种设计模式之创建型模式之工厂方法模式
- GoF23种设计模式之创建型模式之抽象工厂模式
- GoF23种设计模式之创建型模式之单态模式
- GoF23种设计模式之创建型模式之原型模式
- 设计模式(创建型)之建造者模式(Builder Pattern)
- 设计模式-创建型之建造者模式
- Python的创建型设计模式之建造者模式
- 建造者模式——设计模式之创建型
- 二十三种设计模式之创建型模式之建造者模式
- 创建型模式之建造者模式
- 创建型模式之建造者模式
- 创建型模式之建造者模式
- IOS中各种图片大小尺寸汇总
- 在阿里云ubuntu服务器部署lamp环境
- IOC框架入门介绍
- SqlConnection,OleDbConnection,OdbcConnection和OracleConnection
- mysql 插入中文 乱码
- GoF23种设计模式之创建型模式之建造者模式
- oracle 事务读一致性
- 模线性方程
- Libgdx New 3D API 教程之 -- 使用Libgdx加载模型
- JQuery给select添加/删除节点
- Tomcat7 中设置shared目录
- 遵守安全策略,私有云更安心
- nginx+apache+mysql+php+memcached+squid搭建门户网站
- PCB布线中各层的意义