设计模式教程.pptVIP

  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文档。上传文档
查看更多
模式(Pattern) 一个围棋下得好的人知道,好的“形”对于围棋非常重要。形是棋子在棋盘上的几何形状的抽象化。 形就是模式(Pattern),也是人脑把握和认识外界的关键。 模式 我们处理大量问题时,在很多不同的问题中重复出现的一种性质,它使得我们可以使用一种方法来描述问题实质并用本质上相同,但细节永不会重复的方法去解决,这种性质就叫模式。 成为模式的条件 1、 它可以解决问题。模式不能仅仅反映问题,而必须对问题提出解决方案。 2、它所提出解决方案是正确的,而且不是很明显的。 3、它必须是涉及软件系统深层的结构的东西,不能仅是对已有的模块的描述。 4、它必须满足人的审美,简洁美观。 一个美妙的东西不一定就是模式, 但是一个模式必须是一个美妙的东西 开创性著作 《Design Patterns – Elements of Reusable Object-Oriented Software》 作者 E.Gamma R. Helm, R. Johnson J. Vlissides 四位作者通常被称为四人帮(Gang of Four, 或GoF),带有戏虐成分 。 经典的23种模式总浏览 红色为本课程要讲述的模式。 兰色为已经学习过的模式 什么是创立性模式 创立性模式(Creational Patterns)是类在实例化时使用的模式。 当一些系统在创立对象时,需要动态地决定 怎样创立对象,创立哪些对象 创立性模式告诉我们怎样构造和包装这些动态的决定。 什么是结构性模式 结构性模式描述类和对象怎样结合在一起成为较大的结构。 结构性模式描述两种不同的东西:类与类的实例。 行为模式 行为模式设计到算法和对象职责间的分配。 行为模式不仅是关于类和对象的,而且还描述它们之间的作用。 这些模式刻画了运行时刻难以跟踪的复杂的控制流,它帮助软件设计者在设计软件的时候把注意力从控制流转移到对象间的联系上。 推荐书籍 阎宏 1987年毕业于中国科技大学近代物理系 1990年于中科院理论物理所获硕士,1992年获博士. 从1992年到现在,在美国从事软件研究开发工作。 现在美国花旗银行工作,副总裁级系统工程师。 简单工厂模式回顾 在简单工厂模式中,一个工厂类处于对产品类实例化调用的中心位置上,它决定那一个产品类应当被实例化, 如同一个交通警察站在来往的车辆流中,决定放行哪一个方向的车辆向那一个方向流动一样。 工厂方法模式 工厂方法模式是简单工厂模式的进一步抽象化和推广。 它比简单工厂模式聪明的地方在于, 它不再作为一个具体的交通警察的面貌出现,而是以交通警察局(工厂)的面貌出现。 具体的警察成为工厂方法的执行者。 工厂方法模式里不再只由一个工厂类决定哪一个产品类应当被实例化,这个决定被交给子类去作。 开始种植蔬菜 我们准备再次引进蔬菜类植物,比如: 西红柿 (Tomato) 土豆 (Potato) 西芥兰花 (Broccoli) 蔬菜需要喷洒(dust)杀虫剂(pesticide)除虫 为什么需要工厂方法模式 简单工厂模式。FruitGardener掌握所有水果类的生杀大权。 为什么需要工厂方法模式 再设计一个专管蔬菜类植物的工厂类 ? 这样做一个明显的不足点就是不够一般化和抽象化。 在FruitGardener和VeggieGardener类之间明显存在很多共同点, 这些共同点应当抽出来一般化和框架化。 这样一来,如果后花园的主人决定再在园子里引进些树木类植物时, 我们有框架化的处理方法。 工厂方法模式的定义 工厂方法模式的定义 ConcreteCreator 的factory() 方法返还的数据类型是一个接口 PlantIF,而不是哪一个具体的产品类。 这种设计使得工厂类创立哪一个产品类的实例细节完全封装在工厂类内部。 工厂方法模式又叫多形性工厂模式,显然是因为实工厂类都有共同的接口,或者都有共同的抽象父类。 抽象工厂接口(Creator) 担任这个角色的是工厂方法模式的核心,它是与应用程序无关的。任何在模式中创立对象的工厂类必须实现这个接口。 实工厂类 (Conrete Creator) 担任这个角色的是与应用程序紧密相关的,直接在应用程序调用下,创立产品实例的那样一些类。 实产品 (Concrete Product) 担任这个角色的类是工厂方法模式所创立的任何对象所属的类。 产品 (Product) 担任这个角色的类是工厂方法模式所创立的对象的父类,或它们共同拥有的接口。 工厂方法模式在小花果园系统中的实现 工厂方法模式在小花果园系统中的实现(2) 取代了过去的

文档评论(0)

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

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

1亿VIP精品文档

相关文档