设计模式05工厂方法模式.pdfVIP

  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文档。上传文档
查看更多
设计模式05工厂方法模式

第5章 第5章 工厂方法模式 工厂方法模式 主讲教师:程细柱 韶关学院计算机系 本书主编:刘 伟 清华大学出版社 本章教学内容 工厂方法模式 模式动机与定义 模式结构与分析 模式实例与解析 模式效果与应用 模式扩展 工厂方法模式 简单工厂模式的不足 在简单工厂模式中,只提供了一个工厂类,该工厂类处 于对产品类进行实例化的中心位置,它知道每一个产品 对象的创建细节,并决定何时实例化哪一个产品类。简 单工厂模式最大的缺点是当有新产品要加入到系统中 时,必须修改工厂类,加入必要的处理逻辑,这违背了 “开闭原则”。在简单工厂模式中,所有的产品都是由同 一个工厂创建,工厂类职责较重,业务逻辑较为复杂, 具体产品与工厂类之间的耦合度高,严重影响了系统的 灵活性和扩展性,而工厂方法模式则可以很好地解决这 一问题。 工厂方法模式 模式动机 考虑这样一个系统,按钮 工厂类可以返回一个具体 的按钮实例,如圆形按 钮、矩形按钮、菱形按钮 等。在这个系统中,如果 需要增加一种新类型的按 钮,如椭圆形按钮,那么 除了增加一个新的具体产 品类之外,还需要修改工 厂类的代码,这就使得整 个设计在一定程度上违反 了“开闭原则”。 工厂方法模式 模式动机 现在对该系统进行修改,不再设计一个按钮工厂类来统 一负责所有产品的创建,而是将具体按钮的创建过程交 给专门的工厂子类去完成,我们先定义一个抽象的按钮 工厂类,再定义具体的工厂类来生成圆形按钮、矩形按 钮、菱形按钮等,它们实现在抽象按钮工厂类中定义的 方法。这种抽象化的结果使这种结构可以在不修改具体 工厂类的情况下引进新的产品,如果出现新的按钮类 型,只需要为这种新类型的按钮创建一个具体的工厂类 就可以获得该新按钮的实例,这一特点无疑使得工厂方 法模式具有超越简单工厂模式的优越性,更加符合“开 闭原则”。 工厂方法模式 模式动机 使用工厂方法模式设 计的按钮工厂 工厂方法模式 模式定义 工厂方法模式(Factory Method Pattern)又称为工厂 模式,也叫虚拟构造器(Virtual Constructor)模式或 者多态工厂(Polymorphic Factory)模式,它属于类创 建型模式。在工厂方法模式中,工厂父类负责定义创建 产品对象的公共接口,而工厂子类则负责生成具体的产 品对象,这样做的目的是将产品类的实例化操作延迟到 工厂子类中完成,即通过工厂子类来确定究竟应该实例 化哪一个具体产品类。 工厂方法模式 模式定义 Factory Method Pattern: Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses. Frequency of use: high 工厂方法模式 模式结构 Product Factory

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档