结构型模式适配器模式.pptVIP

  1. 1、本文档共23页,可阅读全部内容。
  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.

结构型模式涉及到如何组合类和对象以获得更大的结构。结构型类模式采用继承机制来组合接口或实现。一个简单的例子是采用多重继承方法将两个以上的类组合成一个类,结果这个类包含了所有父类的性质。这一模式尤其有助于多个独立开发的类库协同工作。2.

结构型对象模式不是对接口和实现进行组合,而是描述了如何对一些对象进行组合,从而实现新功能的一些方法。因为可以在运行时刻改变对象组合关系,所以对象组合方式具有更大的灵活性,而这种机制用静态类组合是不可能实现的。3.

适配器模式(ADAPTER)-类对象结构型模式组合模式(COMPOSITE)-对象结构型模式装饰模式(DECORATOR)-对象结构型模式4.

Adapter模式:适配器使得一个接口(adaptee的接口)与其他接口兼容,从而给出了多个不同接口的统一抽象。为此,类适配器对一个adaptee类进行私有继承。这样,适配器就可以用adaptee的接口标识它的接口。5.

Composite模式:描述了如何构造一个类层次结构,这一结构由两种类型的对象(基元对象和组合对象)所对应的类构成。其中的组合对象使得你可以组合基元对象以及其他的组合对象,从而形成任意复杂的结构。6.

Decorator模式:描述了如何动态地为对象添加职责。这一模式采用递归方式组合对象,从而允许你添加任意多的对象职责。7.

8.1适配器模式1。意图将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能够一起工作的那些类可以一起工作。8.

2。别名包装器Wrapper9.

3。动机见文档。10.

4。适用性1.你想使用一个已经存在的类,而它的接口不符合你的需要。2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类协同工作。3.你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。11.

5。结构类适配器:类适配器使用多重继承对一个接口与另一个接口进行匹配对象适配器:对象适配器依赖于对象组合12.

类适配器13.

对象适配器14.

6。参与者Target:定义Client使用的与特定领域相关的接口。Client:与符合Target接口的对象协同。Adaptee:定义一个已经存在的接口,这个接口需要适配。Adapter:对Adaptee的接口与Target接口进行适配。15.

对象适配器模型代码原型classTarget??{????publicvirtualvoidRequest()????{??????Console.WriteLine(CalledTargetRequest());????}??}?classAdapter:Target??{????privateAdaptee_adaptee=newAdaptee();?????publicoverridevoidRequest()????{??????//Possiblydosomeotherwork??????//?andthencallSpecificRequest??????_adaptee.SpecificRequest();????}??}?classAdaptee??{????publicvoidSpecificRequest()????{??????Console.WriteLine(CalledSpecificRequest());????}??}}?staticvoidMain()????{??????//Createadapterandplacearequest??????Targettarget=newAdapter();??????target.Request();???????//Waitforuser??????Console.ReadKey();????}OutputCalledSpecificRequest()16.

7。协作Client在Adapter实例上调用一些操作。接着适配器调用Adaptee的操作实现这个请求。17.

客户使用适配器的过程:客户通过目标接口调用适配器的方法对适配器发出请求适配器使用被适配者接口把请求转换成被适配者的一个或多个调用接口(客户与被适配者是解耦的,一个不知道另一个)客户接收到调用的结果,但并未察觉这一切是适配器在起转换作用适配器实现了目标接口,而此目标接口是由被适配者所组合的18.

8。优点和缺点(效果)类适配器和对象适配器有不同的权衡。类适配器:用一个具体的Adapter类对Adaptee和Target进行

文档评论(0)

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

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

1亿VIP精品文档

相关文档