Java设计模式之适配器模式
2016-05-14 09:38
429 查看
适配器模式
适配器模式(Adapter): 将一个类的接口转换成客户希望的另外的一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。注:适配器模式在后续Android课程中用到的地方非常之多,务必学懂!
我们可以从一个电源接口适配器的例子中加深理解
定义两个电源接口和其相应子类, 不过他们的内部方法不同!
interface PowerB{ public void insert(); } interface PowerA{ public void connect(); } class PowerAImpl implements PowerA{ public void connect(){ System.out.println("电源A接口开始工作"); } } class PowerBImpl implements PowerB{ public void insert(){ System.out.println("电源B接口开始工作"); } }
适配器的核心代码如下
//可以适配电源A的适配器 class PowerAdapter implements PowerA{ private PowerB b; public PowerAdapter(PowerB b){ this.b = b; } public void connect(){ b.insert(); } }
测试类
//针对方法不兼容的情况!!! public class Test{ public static void main(String[] arg0){ PowerA a = new PowerAImpl(); input(a); PowerB b = new PowerBImpl(); //input(b);//不能直接用,因input方法只能接收PowerA接口 PowerAdapter adapter = new PowerAdapter(b); input(adapter); } public static void input(PowerA a){ a.connect(); } }
运行结果:
代码说明: 测试类中的input方法只能适用于PowerA, 所以我们需要写一个适配器PowerAdapter用来继承PowerA, 在该适配器中接收PowerB的对象然后做相应的转换来适配PowerA!
以上纯属个人见解, 如有不足之处希望有高人指出, 定感激不尽, 如有喜欢交流学习经验请给我留言谢谢.
原创文章, 转载请注明出处
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序