设计模式-适配器模式
2016-04-16 22:05
309 查看
设计模式之适配器模式
2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
3.(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
定义Client使用的与特定领域相关的接口。
2.Client
与符合Target接口的对象协同。
3.Adaptee
定义一个已经存在的接口,这个接口需要适配。
4.Adapter
对Adaptee的接口与Target接口进行适配
Adaptee:
Adapter:
Client:
运行结果:
Adaptee Method!
Adapter Method!
概述
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适用性
1.你想使用一个已经存在的类,而它的接口不符合你的需求。2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
3.(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
参与者
1.Target定义Client使用的与特定领域相关的接口。
2.Client
与符合Target接口的对象协同。
3.Adaptee
定义一个已经存在的接口,这个接口需要适配。
4.Adapter
对Adaptee的接口与Target接口进行适配
类图
例子
Target:package com.ywx.target; public interface Target { public void adapteeMethod(); public void adapterMethod(); }
Adaptee:
package com.ywx.adaptee; public class Adaptee { public void adapteeMethod(){ System.out.println("Adaptee Method!"); } }
Adapter:
package com.ywx.adapter; import com.ywx.adaptee.Adaptee; public class Adapter { private Adaptee adaptee; public Adapter(Adaptee adaptee){ this.adaptee = adaptee; } public void adapteeMethod(){ adaptee.adapteeMethod(); } public void adapterMthod(){ System.out.println("Adapter Method!"); } }
Client:
package com.ywx.client; import com.ywx.adaptee.Adaptee; import com.ywx.adapter.Adapter; public class Test { public static void main(String[] args) { Adapter target = new Adapter(new Adaptee()); target.adapteeMethod(); target.adapterMthod(); } }
运行结果:
Adaptee Method!
Adapter Method!
相关文章推荐
- Java语法基础-数组
- 【hdu2203】亲和串——用strstr的字符串匹配
- 一.MariaDB 与mysql
- 简单脱壳教程笔记(11) --- 脱WinUpack加的壳
- C++笔试题(正在更新......)
- 打印正方形(c语言)
- gdb调试
- 最大字段和
- spring websocket 初次了解
- download and install the jdk1.8 on ubuntu14.4
- 20159217《网络攻防实践》第七周学习总结
- 深搜算法-1024
- 2015北邮计算机考研复试上机题解
- 带缓存的网页图片查看器
- leetcode——50——Pow(x, n)
- android布局
- xcode 运用CocoaLumberjack和XcodeColors配置分级打印
- 卷积神经网络(Convolutional Neural Networks)CNN
- 图的--最小-连通-网
- 4月16日