锁定老帖子 主题:java设计模式全解[3]-建造者模式
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-11
建造者模式 这个是zmo_xu的java设计模式系列的第三章.这里需要说明一下 我这里给出的代码并不是标准代码,应该说是我自己的学习笔记,拿出来与大家交流,也希望各位高手多多指教,在这里感谢javastudy给予的帮助!(感谢CCTV ,感谢父母 感谢滚石娱乐的什么就不说了 呵呵 好了 老规矩 言归正传[保存下 哈哈 ]) 概述 生活中的例子
唉又一次华丽的提交失败了 产品(套餐)类:<o:p></o:p> java 代码
保存点 2.指导者通知建造器。收银员(指导者)告知餐馆员工准备套餐。这里我们准备套餐的顺序是:放入汉堡,可乐倒入杯中,薯条放入盒中,并把这些东西都放在盘子上。这个过程对于普通套餐和黄金套餐来说都是一样的,不同的是它们的汉堡,可乐,薯条价格不同而已。如时序图红色部分所示: java 代码
3.建造者处理指导者的要求,并将部件添加到产品中。餐馆员工(建造者)按照收银员要求的把对应的汉堡,可乐,薯条放入盘子中。这部分是建造者模式里面富于变化的部分,因为顾客选择的套餐不同,套餐的组装过程也不同,这步完成产品对象的创建工作。
程序实现: java 代码
今天就写到这里晚了 这样写好累的说 郁闷都没人顶下 动力啊 ....55555 具体的建造者 java 代码
java 代码
java 代码
food.properties文件放在src下其内容 javastudy 你要的uml在附件的项目里面 我已经生成了uml 欢迎大家讨论 最后附上源代码 追加说明: 实现要点 1、建造者模式主要用于“分步骤构建一个复杂的对象”,在这其中“分步骤”是一个稳定的算法,而复杂对象的各个部分则经常变化。 2、产品不需要抽象类,特别是由于创建对象的算法复杂而导致使用此模式的情况下或者此模式应用于产品的生成过程,其最终结果可能差异很大,不大可能提炼出一个抽象产品类。 3、创建者中的创建子部件的接口方法不是抽象方法而是空方法,不进行任何操作,具体的创建者只需要覆盖需要的方法就可以,但是这也不是绝对的,特别是类似文本转换这种情况下,缺省的方法将输入原封不动的输出是合理的缺省操作。 4、前面我们说过的抽象工厂模式(Abtract Factory)解决“系列对象”的需求变化,Builder模式解决“对象部分”的需求变化,建造者模式常和组合模式(Composite Pattern)结合使用。 效果 1、建造者模式的使用使得产品的内部表象可以独立的变化。使用建造者模式可以使客户端不必知道产品内部组成的细节。 2、每一个Builder都相对独立,而与其它的Builder无关。 3、可使对构造过程更加精细控制。 4、将构建代码和表示代码分开。 5、建造者模式的缺点在于难于应付“分步骤构建算法”的需求变动。 适用性 以下情况应当使用建造者模式: 1、需要生成的产品对象有复杂的内部结构。 2、需要生成的产品对象的属性相互依赖,建造者模式可以强迫生成顺序。 3、 在对象创建过程中会使用到系统中的一些其它对象,这些对象在产品对象的创建过程中不易得到。 应用场景 1、 根据properties文件或者class文件来知道builder 2、 ....... 总结 建造者模式的实质是解耦组装过程和创建具体部件,使得我们不用去关心每个部件是如何组装的。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-06-12
uml图片..我已经把uml生成在项目里面 了 发图片不知道能不能直接粘贴 我就放在项目文件里面了
|
|
返回顶楼 | |
发表时间:2007-07-24
好像不是原创的吧,是不是把别人的文章稍微改了改
http://www.njpro.cn/Forums/thread/28909.aspx http://tech.it168.com/n/2007-05-08/200705081703234_1.shtml 尤其是这一段和别人的一摸一样的,楼主可能要看看版规了 实现要点 1、建造者模式主要用于“分步骤构建一个复杂的对象”,在这其中“分步骤”是一个稳定的算法,而复杂对象的各个部分则经常变化。 2、产品不需要抽象类,特别是由于创建对象的算法复杂而导致使用此模式的情况下或者此模式应用于产品的生成过程,其最终结果可能差异很大,不大可能提炼出一个抽象产品类。 3、创建者中的创建子部件的接口方法不是抽象方法而是空方法,不进行任何操作,具体的创建者只需要覆盖需要的方法就可以,但是这也不是绝对的,特别是类似文本转换这种情况下,缺省的方法将输入原封不动的输出是合理的缺省操作。 4、前面我们说过的抽象工厂模式(Abtract Factory)解决“系列对象”的需求变化,Builder模式解决“对象部分”的需求变化,建造者模式常和组合模式(Composite Pattern)结合使用。 效果 1、建造者模式的使用使得产品的内部表象可以独立的变化。使用建造者模式可以使客户端不必知道产品内部组成的细节。 2、每一个Builder都相对独立,而与其它的Builder无关。 3、可使对构造过程更加精细控制。 4、将构建代码和表示代码分开。 5、建造者模式的缺点在于难于应付“分步骤构建算法”的需求变动。 适用性 以下情况应当使用建造者模式: 1、需要生成的产品对象有复杂的内部结构。 2、需要生成的产品对象的属性相互依赖,建造者模式可以强迫生成顺序。 3、 在对象创建过程中会使用到系统中的一些其它对象,这些对象在产品对象的创建过程中不易得到。 应用场景 |
|
返回顶楼 | |
发表时间:2007-08-15
我的文章是参考某.net大老的设计模式写的 .我在系列文章的第一章里面就说明了 这一点 我并没有说 所有的都是原创的啊
|
|
返回顶楼 | |
发表时间:2007-09-04
不知道楼主可不可以写一个关于PROTOTYPE模式的文章,我对这个不是很了解,谢谢。
|
|
返回顶楼 | |
浏览 10402 次