软件体系结构与设计模式第十二章工厂方法模式.pptVIP

软件体系结构与设计模式第十二章工厂方法模式.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 第十三章 工厂方法模式 * * 工厂方法模式(别名:虚拟构造) 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。 Mediator Pattern(Another Name: Virtual Constructor) Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses. 第一页,共四十一页。 在铸造成型的过程中,制造者首先将塑料加工成可成型的粉末,然后将塑料粉末注入到需要的模具中。在Factory Method模式中,子类 (在这里就是指模具)来决定需要实例化那个类。在这个例子中,ToyHorseMold类就是被实例化的类。 第二页,共四十一页。 一 、 概述 * * 当系统准备为用户提供某个类的子类的实例,又不想让用户代码和该子类形成耦合时,就可以使用工厂方法模式来设计系统。工厂方法模式的关键是在一个接口或抽象类中定义一个抽象方法,该方法返回某个类的子类的实例,该抽象类或接口让其子类或实现该接口的类通过重写这个抽象方法返回某个子类的实例。 第三页,共四十一页。 二、工厂方法模式的结构与使用 * * 模式的结构中包括四种角色: 抽象产品(Product) 具体产品(ConcreteProduct) 构造者(Creator) 具体构造者(ConcreteCreator) 第四页,共四十一页。 * * 模式的UML类图 第五页,共四十一页。 模式的结构的描述与使用 有一个PenCore类(笔芯),该类是一个抽象类。假设PenCore类有三个子类,分别是RedPenCore、BluePenCore和BlackPenCore,而系统设计的目的是为用户提供BallPen类(圆珠笔)的子类的实例,即含有笔芯的圆珠笔,也就是说系统想让用户使用BallPen类的子类的实例来得到PenCore类的子类的实例。 第六页,共四十一页。 * * 模式的结构的描述与使用 1.抽象产品(Product) : PenCore.java public abstract class PenCore{ String color; public abstract void writeWord(String s); } 第七页,共四十一页。 * * 模式的结构的描述与使用 2.具体产品(ConcreteProduct)_1 : RedPenCore.java public class RedPenCore extends PenCore{ RedPenCore(){ color=红色; } public void writeWord(String s){ System.out.println(写出+color+的字:+s); } } 第八页,共四十一页。 * * 模式的结构的描述与使用 2.具体产品(ConcreteProduct)_2 : BluePenCore.java public class BluePenCore extends PenCore{ BluePenCore(){ color=蓝色; } public void writeWord(String s){ System.out.println(写出+color+的字:+s); } } 第九页,共四十一页。 * * 模式的结构的描述与使用 2.具体产品(ConcreteProduct)_3: BlackPenCore.java public class BlackPenCore extends PenCore{ BlackPenCore(){ color=黑色; } public void writeWord(String s){ System.out.println(写出+color+的字:+s); } } 第十页,共四十一页。 * * 模式的结构的描述与使用 3.构造者(Creator):BallPen.java public abstract class BallPen{ BallPen(){ System.out.println(生产了一只装有+getPenCore().color+笔芯的圆

文档评论(0)

虾虾教育 + 关注
官方认证
文档贡献者

有问题请私信!谢谢啦 资料均为网络收集与整理,收费仅为整理费用,如有侵权,请私信,立马删除

版权声明书
用户编号:8012026075000021
认证主体重庆皮皮猪科技有限公司
IP属地重庆
统一社会信用代码/组织机构代码
91500113MA61PRPQ02

1亿VIP精品文档

相关文档