- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章工厂系列模式 回顾 设计模式有几类?分别是什么? 创建型模式有那些模式? 本章任务 使用简单工厂完成薪资系统的设计 使用工厂方法模式升级薪资系统 使用抽象工厂方法模式升级薪资系统 本章目标 掌握工厂系列设计模式的原理 掌握工厂系列设计模式的使用时机 掌握工厂系列设计模式的优缺点 会使用工厂系列设计模式设计系统 动物园管理系统 动物园管理系统 动物园管理系统 动物园管理系统 简单工厂模式简介 简单工厂模式又叫静态工厂模式,它定义一个具体的工厂类来负责创建一类的实例,而这些创建的类都应该有一个共同的父类,这样就可以实现面向抽象而不是面向具体编程。 简单工厂模式简介 简单工厂模式使用时机如下: 简单工厂模式优点如下: 简单工厂模式缺点如下: 小结 企业中有这样一个需求:该企业有很多子公司,每个子公司都有一套自己的薪资计算规则,每个月每个公司都要计算自己公司的薪资,那么如果该企业要设计一套薪资系统,应该如何设计呢? 再谈动物园管理系统的设计 在用简单工厂模式实现了薪资程序后,虽然将对象的创建和初始化工作与客户端分离开了,实现了这部分的责任分配,但是所有对象创建和初始化的工作还是集中在了这个具体的工厂类里,这样如果要创建的对象很多,这个工厂类将会非常庞大,仍然不利于后期的代码维护,那该怎么办? 再谈动物园管理系统的设计 原动物接口及实现动物接口的其它类不变,添加抽象工厂类及实现抽象工厂类的工厂类。 工厂方法模式简介 工厂方法模式相对于简单工厂模式来说,就是把一个单一的工厂类,分成了多个具体的工厂,并抽象出了一个工厂类,这个工厂类只负责定义创建的方式,创建的具体内容由继承它的小工厂类实现。 工厂方法模式简介 工厂方法模式使用时机如下: 工厂方法模式优点如下: 工厂方法模式缺点如下: 小结 使用工厂方法模式升级企业薪资系统 再谈动物园管理系统设计 在创建类的过程当中,并非只是创建一个老虎类、海豚类等这么简单,因为有时候还要搭建适合动物们生活的环境,比如亚洲的老虎、海豚、鹦鹉生活的环境可能和非洲的老虎、海豚、鹦鹉生活环境不一样,因此即使都是老虎,也要分别生成一个用来创建亚洲虎的工厂类和一个用来创建非洲虎的工厂类。这样一来工厂类就太多了,到处都是类,真的不好维护,那么该怎么办呢? 再谈动物园管理系统设计 原动物接口及实现动物接口的老虎、海豚、鹦鹉类不变,添加亚洲老虎、海豚、鹦鹉和非洲老虎、海豚、鹦鹉类。新添加的类分别继承老虎、海豚、鹦鹉类。 再谈动物园管理系统设计 再谈动物园管理系统设计 再谈动物园管理系统设计 再谈动物园管理系统设计 抽象工厂模式简介 相对于工厂方法模式,抽象工厂模式是针对于多个产品系列的,即工厂方法模式是一个产品系列一个工厂类,而抽象工厂模式是多个产品系列一个工厂类。 抽象工厂模式简介 抽象工厂模式使用时机如下: 抽象工厂模式优点如下: 抽象工厂模式缺点如下: 小结 使用抽象工厂模式升级企业薪资系统,假如计算薪资后,还要再计算社会保险、个人所得税等怎么办? 工厂模式总结 在简单工厂中,一个工厂类负责所有产品对象的创建,这个工厂类的职责大大增加。由于简单工厂模式使用静态方法来创建对象,这就导致静态方法无法被继承。 在工厂方法中,一个具体的工厂类负责创建一个单独的产品,如果两个不同的产品要创建,就需要两个不同的工厂类,即使这两个产品有某些必要的联系,也还是需要两个不同的工厂类。 在抽象工厂模式中,一个具体的工厂类负责创建一系统相互关联的产品,当一系列相互关联的产品被设计到一个工厂类里后,客户端的调用将会变得非常简单如果要更换这一系列的产品,则只需要更换一个工厂类即可。 心伟软件工作室 心 伟 软 件 工 作 室 Thinkway Software wookroom 设计一个动物管理系统,要求对动物的属性、日常生活进行记录。 1、设计一个抽象的动物类 2、然后每个具体的动物都继承这个抽象的动物类 3、创建客户端创建和使用这些类。 /* 动物类接口的源代码 */ public interface Animal{ public void eat(); } /* 老虎类源代码 */ public class Tiger implements Animal{ public void run(){ System.out.println(“老虎会跑”); } public void eat(){ System.out.println(“老虎会吃”); } } /* 海豚类源代码 */ pub
文档评论(0)