- 1、本文档共101页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计模式(扩展)PPT
满足了公司的需求了,满足完了,还要下一个需求呀,然后是第2 件宝马模型, 只要启动,停止,其他的什么都不要,第3 件模型,先喇叭,然后启动,然后停止,第4 件..., 那怎么办?我们修改程序,满足这种无止境需求,看我如何修改,先修改类图: 类图 增加了一个CarBuilder 的抽象类,以及两个实现类。 其目的是你要什么排列顺序的车,我就给你什么顺序的车。 CarBuilder.java package com.cbf4life; import java.util.ArrayList; /** * 要什么顺序的车,你说,我给建造出来 */ public abstract class CarBuilder { //建造一个模型,你要给我一个顺序要,就是组装顺序 public abstract void setSequence(ArrayListString sequence); //设置完毕顺序后,就可以直接拿到这个车辆模型 public abstract CarModel getCarModel(); } 说明 这个抽象类比较简单,我们看两个实现类。 BenzBuilder.java 的程序代码: BenzBuilder.java package com.cbf4life; import java.util.ArrayList; /** * 各种设施都给了,我们按照一定的顺序制造一个奔驰车 */ public class BenzBuilder extends CarBuilder { private BenzModel benz = new BenzModel(); @Override public CarModel getCarModel() { return this.benz; } @Override public void setSequence(ArrayListString sequence) { this.benz.setSequence(sequence); } } BMWBuilder.java package com.cbf4life; import java.util.ArrayList; /** * 给定一个顺序,返回一个宝马车 */ public class BMWBuilder extends CarBuilder { private BMWModel bmw = new BMWModel(); @Override public CarModel getCarModel() { return this.bmw; } @Override public void setSequence(ArrayListString sequence) { this.bmw.setSequence(sequence); } } 说明 程序很简单,很实用,这就是我最希望的,简单而又实用。 再来看我们Client.java 程序的修改: Client.java package com.cbf4life; import java.util.ArrayList; /** . * 最终客户开始使用这个模型 */ public class Client { public static void main(String[] args) { /* * 客户告诉甲方公司,我要这样一个模型,然后甲方公司就告诉我老板说要这样一个模型, 这样一个顺序,然后我就来制造 */ ArrayListString sequence = new ArrayListString(); //存放run的顺序 sequence.add(engine boom); //客户要求,run的时候时候先发动引擎 sequence.add(start); //启动起来 sequence.add(stop); //开了一段就停下来 //要一个奔驰车: BenzBuilder benzBuilder = new BenzBuilder(); //把顺序给这个builder类,制造出这样一个车出来 benzBuilder.setSequence(sequence); //制造出一个奔驰车 BenzModel benz = (BenzModel)benzBuilder.getCarModel(); //奔驰车跑一下看看 benz.run(); } } Client.java package com.cbf4life; /** * 客户开始使用这个模型 */ public class Client { public static void main(String[] args) { //客户开着H1型号,出去遛弯了 HummerModel h1 = new
您可能关注的文档
最近下载
- 糖尿病达格列净.pptx VIP
- 浅析《德伯家的苔丝》中的女权意识.docx VIP
- 关于软著的培训.pptx VIP
- 2021必威体育精装版苏教版科学四年级下册全册教案.docx
- 2024年赣州职业技术学院高职单招职业适应性测试历年【2016-2023】高频考点试题含答案解析.docx
- 国际经济学-第五版-冯德连-【PPT】第2章 国际贸易理论的微观基础.pptx VIP
- 深静脉血栓形成预防和护理措施(共30张课件).pptx VIP
- 安徽皖能集团考试题库.pdf
- 职业院校思想政治教育贯穿信息技术课堂教学研究.doc VIP
- 铁路混凝土连续梁(刚构)悬臂浇筑-挂篮施工安全管控技术手册-2023(1).docx
文档评论(0)