Java 建造者模式
2015-09-13 11:29
405 查看
描述:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心。“建造的内容”是由建造者实现,“建造的顺序”由指导者决定。
与抽象工厂的区别:Builder模式遵循一定的步骤一步一步的创建对象,这样一来,按照时间顺序创建对象就显得非常重要了。
与抽象工厂的区别:Builder模式遵循一定的步骤一步一步的创建对象,这样一来,按照时间顺序创建对象就显得非常重要了。
class Person { String head, body, foot; public String toString() { return head + body + foot; } } //抽象的建造者 interface BuildPerson { void head(); void body(); void foot(); //建造者返回一个建造好的person Person getPerosn(); } //男人的建造者 class BuildMan implements BuildPerson { private Person person; public BuildMan() { person = new Person(); } public void head() { person.head = "构造一个男人的头"; } public void body() { person.body = "构造一个男人的身体"; } public void foot() { person.foot = "构造一个男人的脚"; } public Person getPerosn() { // TODO Auto-generated method stub return person; } } //女人的建造者 class BuildWoMan implements BuildPerson { private Person person; public BuildWoMan() { person = new Person(); } public void head() { person.head = "构造一个女人的头"; } public void body() { person.body = "构造一个女人的身体"; } public void foot() { person.foot = "构造一个女人的脚"; } public Person getPerosn() { // TODO Auto-generated method stub return person; } } //指导者 class Director { public Person construct(BuildPerson builder) { builder.head(); builder.body(); builder.foot(); return builder.getPerosn(); } } //客户端 public class Client { /** * @param args */ public static void main(String[] args) { Director director = new Director(); //建造一个男人,传入男人的建造者 Person person = director.construct(new BuildMan()); System.out.println(person); //建造一个女人,传入女人的建造者 person = director.construct(new BuildWoMan()); System.out.println(person); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统