网站大量收购独家精品文档,联系QQ:2885784924

第1章节 的设计模式初涉.pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章节 的设计模式初涉

第一章 设计模式入门 目标 了解面向对象设计的基本原则 合理使用设计模式解决OO中的设计缺陷 使用UML进行类图分析与设计 利用模式和原则设计简单应用程序 举例 设计一个Bird类 怎么解决? 在ModelBird类中覆盖fly() 利用接口,将fly()放在其中 解决问题-1 假设Bird类内的fly()和quack()会随着鸟的不同而改变。 (FlyWithWings and FlyNoWay) (Quack、MuteQuack、Squeak) 解决问题-2 设计原则二: 针对接口编程,而不是针对实现编程 解决问题-3 希望在运行时动态改变行为,如在运行时动态改变鸟的飞行行为或叫的行为。 代码实现 代码实现 运行 小结 OO基础 抽象 封装 多态 继承 OO原则 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 OO模式 UML类图简介 类图解析-1 类 接口 类图解析-2 泛化关系 在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间 类图解析-3 关联关系 如果A类中成员变量是用B类(接口)来声明的变量,那么A和B的关系是关联关系,A关联于B。 依赖关系 举例 观察者(Observer)模式-1 举例 观察者(Observer)模式-2 定义对象之间一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 示例类图 特点 观察者模式特点 代码实现 代码实现 运行 示例类图 总结 了解面向对象设计的基本原则 合理使用设计模式解决OO中的设计缺陷 使用UML进行类图分析与设计 利用模式和原则设计简单应用程序 设计模式 设计模式 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. Bird quack() display() //鸟的其它方法 MallarBird display(){// 外观是绿色} RedheadBird display(){// 外观是红色} ModelBird display(){// 外观是木头} 增加鸟可以飞行的动作,怎么办? 往Bird类中添加fly( )方法 fly( ) 但是模型鸟不能飞行的! 体会:为了方法复用目的而使用继承,结局并不完美! Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. ModelBird fly( ){// 覆盖,什么都不做} display( ){// 外观是木头} 假设有100种鸟都不会飞,怎么样?---噩梦 每一种鸟(子类)都要实现接口中的fly()方法,造成代码无法复用问题.---恶梦 设计原则一: 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在 .一起。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 根据上述原则,我们将这两个方法从类Bird中取出,并且分开设计,建立一组新类 来代表每个行为。 鸟类 取出易于变化部分 飞行行为 鸟叫行为 怎样与行为关联呢 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 飞行行为 鸟叫行为 《interface》 FlyBehavior +fly( ):void 《interface》 QuackBehavior +quack():void flyBehavior:FlyBehavior quackBehavior:QuackBehavior display() performQuack(){ quackBehavior.quack(); } performFly(){ flyBehavior.fly();

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档