- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件秘籍:设计模式那点事儿
第4章手机套餐:建造者模式
第4章手机套餐:建造者模式
4.1 手机套餐
4.2 模式定义
4.3 故事中的模式分析
4.4 模式实现
4.5 设计原则
4.6 使用场合
4.7 本章要点
4.1 手机套餐
如图4-1所示就是一个手机套餐广告。
4.2 模式定义
建造者设计模式(Builder Pattern),一听这个名字,你可能就会猜
到一二分了。建造者简单理解就是造东西,只不过建造者模式建造的不
是一个简单的东西,是一个比较复杂的东西。
4.3 故事中的模式分析
4.3.1 角色分析
将例子中的各种角色列出如下:
客户张三——终端需求
营业厅操作员——指导者(通知指导建造者生产什么样的手机套餐)
计算机——建造者(建造各种手机套餐)
手机套餐——产品
各种角色之间的关系如图4-2所示。
4.3.2 建造者模式的静态建模
如图4-3所示为建造者模式实现手机套餐的静态类图。
4.4 模式实现
4.4.1 创建产品——手机套餐
在“model”包中创建手机套餐类MobilePackage ,该类内容很简单,就是
一个POJO类,含有话费、短信条数和彩铃几个属性,以及set和get 方法。
4.4.2 建立抽象建造者
1 .建造者接口——IMobileBuilder
2 .抽象建造者——AbstractBasePackage
4.4.3 建立具体建造者
1 .具体的建造者——MobileBuilderImpl1 (20元包400 条短信的手机套餐)
2 .具体的建造者——MobileBuilderImpl2 (30元包600条短信的手机套餐)
4.4.4 创建指导者
所有的工作都已准备完毕。整个工程的结构如图4-5所示。
4.4.5 让客户订购手机套餐
在系统级包中创建主应用程序MainApp ,内容所示。
示例代码结果如下所示:
4.4.6 如何简化建造者实现
指导者的使用使得整个示例代码显得很干净利落,代码很整洁,思
路很清晰,这样日后的维护成本就会大大降低。
4.5 设计原则
1 .分步骤创建复杂对象
2 .构建和表示分离
3 .单一职责原则
4.6 使用场合
(1)当生成的产品对象内部具有复杂的结构时;
(2)当复杂对象需要与表示分离,可能需要创建不同的表示时;
(3)当需要向客户隐藏产品内部结构的表现时。
4.6 使用场合
建造者设计模式的结构如图4-6所示。
4.6 使用场合
简化的建造者模式如图4-7所示。
4.7 本章要点
1 .建造者模式
2 .设计原则
3 .建造者模式的时序图,各组件之间的调用时机
4 .建造者模式和抽象工厂模式的区别
5 .建造者模式的使用场合
您可能关注的文档
最近下载
- 新能源汽车整车控制系统检测与维修高职PPT完整全套教学课件.pptx VIP
- 人教版一年级数学上册《比大小》课件(共38张PPT).pptx VIP
- 血管活性药物静脉输注护理---团体标准解读.pptx VIP
- 2025年全国质量月培训讲座PPT课件.pptx VIP
- 自考《文学概论》第五章-抒情作品教学课件.ppt VIP
- 北师大版九年级数学上册全册教案教学设计.pdf VIP
- 恶心与呕吐腹泻.ppt VIP
- 2025年中国学生床上用品数据监测研究报告.docx
- 1.1 地球的自转和公转 课件-2024-2025学年中图版初中地理八年级上册.pptx VIP
- EduSoho系统功能说明书v7.2(1231).doc VIP
文档评论(0)