网站大量收购独家精品文档,联系QQ:2885784924

设计模式(扩展)PPT.ppt

  1. 1、本文档共101页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

djdjix + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档