Adapter适配器模式

适配器模式UML:

继承适配:

Adapter适配器模式_第1张图片

对象适配:

Adapter适配器模式_第2张图片

•目标角色(Target):— 定义Client使用的与特定领域相关的接口。
• 客户角色(Client):与符合Target接口的对象协同。
• 被适配橘色(Adaptee):定义一个已经存在并已经使用的接口,这个接口需要适配。
• 适配器角色(Adapte) :适配器模式的核心。它将对被适配Adaptee角色已有的接口转换为目标角色Target匹配的接口。对Adaptee的接口与Target接口进行适配.

Adapter适配器模式关键知识点总结:

1. Adapter总是继承Target(对外稳定的接口),继承或关联Adaptee类,本来是Target的接口却是借助Adptee类或者Adptee的子类来实现。

2. Adpter用类继承方式,利于实现改变Adptee类的行为,但是不利于在多个Adptee子类间切换适配器或用多个适配器;Adpter用关联的方式来实现恰好相反,不利于改变Adptee类行为,却利于在多个Adptee子类间切换或用多个适配器。

3.可以采用双向适配器,即如果两个系统或两个模块之间相互调用时候,那么需要Adpter实现双方的接口。那么客户想用Adptee真正去处理时候可以通过使用了Target接口的Adpter来实现; 客户端想用Target真正去处理时候可以通过使用了Adptee接口的Adpter来实现。

 适用性

以下情况使用 Adapter模式:
1 • 你想使用一个已经存在的类,而它的接口不符合你的需求。
2 • 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
3 •(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。即仅仅引入一个对象,并不需要额外的指针以间接取得adaptee。

参考:

http://blog.csdn.net/hguisu/article/details/7527842

http://www.ibm.com/developerworks/cn/java/j-lo-adapter-pattern/index.html

你可能感兴趣的:(Adapter适配器模式)