Adapter

[align=center]Adapter[/align]

Intent
Convert the interface of a class into another interface that clients expect.Adatper let classes work together that couldn't otherwise because of incompatible interfaces.


Applicability
Use Adapter pattern when
1)you want to use an existing class,and its interface does not match what you need.

Structure
Object Adapter
[img]http://dl.iteye.com/upload/attachment/0083/4223/26fa52b7-1bb2-3259-bc4d-bbfe8576ad20.png[/img]

Class Adapter

[img]http://dl.iteye.com/upload/attachment/0083/4229/f2169f20-0cc1-3fb6-aaa3-e19f0597d76d.png[/img]


Participant
1)Target
defines the domain-specific interface that Client expects.


2)Client
collaborates with objects conforming to the Target interface.

3)Adaptee
defines an existing interface that needs adapting.

4)Adapter
adapts the interface of adaptee to the Target interface


Consequences
Class adapter and Object adapter has different trade-offs.
for class adapter:
1)lets Adapter override some of Adaptee's behavior, since Adapter is a subclass of
Adaptee

2)adapts Adaptee to Target by committing to a concrete Adapter class. As a
consequence, a class adapter won't work when we want to adapt a class and all its
subclasses

3) introduces only one object,and no additional pointer indirection is needed to get to adaptee..

for Object adapter:
1)Let a single adapter work with many adaptees-that is,the adaptee itself and all of its subclasses(if any).The Adapter can also add functionality to all adaptees at once.

2) Makes it harder to override Adaptee behavior.It will require subclassing Adaptee and making Adapter refer to the subclass rather than the Adaptee itself.


Two-way adapter.

Usage
Data transforming.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值