BRIDGE桥梁模式重点详解.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文档。上传文档
查看更多
设计模式—桥梁模式 简洁 吕云 黄婷 周雯 李益君 桥梁(Bridge)模式 桥梁模式是一个非常有用的模式,也是比较复杂的一个模式。熟悉这个模式对于理解面向对象的设计原则,包括开-闭原则(OCP)以及组合/聚合复用原则(CARP)都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。 桥梁模式的用意 脱耦 实现化 【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化。 抽象化 关键词: 桥梁模式的结构 桥梁模式【GOF95】是对象的结构模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 右图所示就是一个实现了桥梁模式的示意性系统的结构图: 可以看出,这个系统含有两个等级结构,也就是: 1:由抽象化角色和修正抽象化角色组成的抽象化等级结构。 2:由实现化角色和两个具体实现化角色所组成的实现化等级结构。 桥梁模式所涉及的角色 抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用。 修正抽象化(Refined Abstraction)角色:扩展抽象化角色,改变和修正父类对抽象化的定义。 实现化(Implementor)角色:这个角色给出实现化角色的接口,但不给出具体的实现。必须指出的是,这个接口不一定和抽象化角色的接口定义相同,实际上,这两个接口可以非常不一样。实现化角色应当只给出底层操作,而抽象化角色应当只给出基于底层操作的更高一层的操作。 具体实现化(Concrete Implementor)角色:这个角色给出实现化角色接口的具体实现。 桥梁模式的示意性代码 //?Bridge?pattern?--?Structural?example?? using?System; //?Abstraction class?Abstraction { ??//?Fields ??protected?Implementor?implementor; ??//?Properties ??public?Implementor?Implementor ?? { ????set {?implementor?=?value;?} ??} 桥梁模式的示意性代码 ?//?Methods ??virtual?public?void?Operation() ?? { ????implementor.Operation(); ??} } //?Implementor abstract?class?Implementor { ??//?Methods ??abstract?public?void?Operation(); } //?RefinedAbstraction class?RefinedAbstraction?:?Abstraction { ??//?Methods ??override?public?void?Operation() ?? { ????implementor.Operation(); ??} } 桥梁模式的示意性代码 //?Implementor abstract?class?Implementor { ??//?Methods ??abstract?public?void?Operation(); } //?RefinedAbstraction class?RefinedAbstraction?:?Abstraction { ??//?Methods ??override?public?void?Operation() ?? { ????implementor.Operation(); ??} } 桥梁模式的示意性代码 //?ConcreteImplementorA class?ConcreteImplementorA?:?Implementor { ??//?Methods ??override?public?void?Operation() ?? { ????Console.WriteLine(ConcreteImplementorA?Operation); ??} } //?ConcreteImplementorB class?ConcreteImplementorB?:?Implementor { ??//?Methods ??override?public?void?Operation() ?? { ????Console.WriteLine(ConcreteImplementorB?Operation); ??} } 桥梁模式的示意性代码 ///?summary

文档评论(0)

我是兰花草 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档