接口适配器模式
2015-12-18 14:23
302 查看
说明:也叫缺省适配器模式,主要解决接口的复用问题:有时候可能我们的业务只需要使用接口中的某一个方法而不是全部方法,但是由于接口的语言特性而不得不实现全部的抽象方法,这样就会使得接口的使用过程很麻烦,特别是接口中存在很多抽象方法的时候。面对接口的这类问题,我们可以采用一个抽象类(也可以不是抽象类)去实现接口,然后让我们的类去继承这个抽象类同时只重写我们感兴趣的方法即可。示例代码:
package com.z2; public interface Target { void function1(); void function2(); void function3(); void function4(); }
package com.z2; /** * TargetWrapper实现了Target接口,并给出了默认实现 */ abstract class TargetWrapper implements Target { @Override public void function1() { System.out.println("function1:TargetWrapper"); } @Override public void function2() { } @Override public void function3() { } @Override public void function4() { } }
package com.z2; /** * 适配器,继承TargetWrapper,重写自己感兴趣的方法 */ public class Adapter extends TargetWrapper { public Adapter() { super(); } @Override public void function2() { System.out.println("function4:Adapter"); } }package com.z2;public class A2 {public static void main(String[] args) {Target target = new Adapter();target.function1();target.function2();}}//结果//function1:TargetWrapper//function4:Adapter
相关文章推荐
- Linux 常用命令
- 现代优化算法 之 模拟退火
- [LeetCode] Dp
- 三种弹窗提醒代码范例
- 問題排查:在 ServiceModel 客戶端配置部份中,找不到名稱 和協定 的終結點元素。
- 简单了解文档碎片DocumentFragment的使用
- binary search(java)
- Node.js 究竟是什么?
- 运行MySQL远程连接
- Java原型模式之基础
- leetcode(303)Range Sum Query - Immutable js代码实现
- willMoveToParentViewController和didMoveToParentViewController
- Win10怎么屏蔽指定的网站?
- Windows Server 2008 R2 安裝 Oracle 10g
- 列表视图ListView和ListActivity
- 正则表达式之去除空行
- DIV+CSS布局和TABLE布局的优缺点讲解
- LAMP环境下不能解析php原因及排查步骤
- hibernate、spring、c3p0整合(连接池)
- Android App的签名打包