T9_设计模式_桥接模式.pptVIP

  1. 1、本文档共16页,可阅读全部内容。
  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文档。上传文档
查看更多
T9_设计模式_桥接模式.ppt

第九章  桥接模式 回顾 适配器模式的原理 适配器模式,有什么优缺点? 本章任务 结构模式 适配器模式(Adapter) 桥接模式(Bridge) 组合模式(Composite) 装饰模式(Decorator) 外观模式(Facade) 享元模式(Flyweight) 代理模式(Proxy) 桥接模式——引子 男人约会:男人的约会一定会有女人,但约会地点由女人提出,这样的地点会因为所约女人不同,而有变化。大陈先生,约小雨就要去西餐厅订位,准备玫瑰花;约小雪就要去买电影票,准备爆米花。 在程序中,如何实现? 桥接模式——定义 定义 将抽象部分与实现部分分离,使得它们两部分可以独立地变化。 桥接模式——结构图 桥接模式——参与者 参与者 抽象类(Abstraction) 定义抽象类的接口 维护一个实现类接口的对象 扩充抽象类(Refined Abstraction) 扩充由抽象类定义的接口 实现类接口(Implementor) 定义实现类的接口,这个接口不一定要与抽象类的接口完全一致,事实上这两个接口可以完全不同,一般的讲,实现类接口仅提供基本操作,而抽象类定义的接口可能会做更多更复杂的操作 具体实现类(Concrete Implementor) 实现实现类接口,并且具体实现它。 桥接模式——应用 桥接模式——应用 桥接模式——应用 桥接模式——应用 桥接模式——优缺点 优缺点 优点 可以从接口中分离实现功能,使得设计更具扩展性,这样,客户调用方法时根本不需要知道实现的细节。 减少了子类,使得代码更清洁,生成的执行程序文件更小。 缺点 抽象类与实现类的双向连接使得运行速度减慢。 桥接模式——适用性 适用性 想避免抽象方法和其实现方法绑定在一起。 抽象接口和它的实现都需要扩展出子类以备使用。 变动实现的方法根本不会影响客户程序调用部分(甚至不用重新编译) 总结 简单描述下,什么是桥接模式? 桥接模式,有什么优缺点? * * abstract class Engagement { public abstract void GetReady(Plan plan); } 抽象类 abstract class Plan { public abstract void BringUp(string plan); } 实现类接口 class Man:Engagement { public override void GetReady(Plan plan) { Console.WriteLine(约 + plan.Name); switch (plan.PlanName) { case 吃饭: Console.WriteLine(去西餐厅订位,准备玫瑰花。); break; case 看电影: Console.WriteLine(买电影票,准备爆米花。); break; } } } 扩充抽象类 class Woman : Plan { public override void BringUp(string plan) { this.PlanName = plan; } } 具体实现类 class Program { static void Main(string[] args) { Plan xiaoyu = new Woman(); xiaoyu.Name = 小雨; xiaoyu.BringUp(吃饭); Plan xiaoxue = new Woman(); xiaoxue.Name = 小雪; xiaoxue.BringUp(看电影); Man dachen = new Man(); dachen.GetReady(xiaoyu); dachen.GetReady(xiaoxue); Console.ReadLine(

文档评论(0)

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

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

1亿VIP精品文档

相关文档