适配器模式(Adapter)-----基于JAVA语言
2017-11-23 19:15
141 查看
适配器模式(Adapter)
适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。
类的适配器模式:
核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口是Targetable,通过Adapter类,将Source的功能扩展到Targetable里
例子:
对象的适配器模式:
基本思路和类的适配器模式相同,只是将Adapter类作修改,这次不继承Source类,而是持有Source类的实例,以达到解决兼容性的问题
例子:
public class Source {
public void method1() {
System.out.println("this is Source method!");
}
}
public interface Targetable {
public void method1();
public void method2();
}
public class Adapter implements Targetable{
private Source source;
public Adapter(Source source) {
this.source = source;
}
@Override
public void method1() {
source.method1();
}
@Override
public void method2() {
System.out.println("this is the targetable method!");
}
}
public class Test {
public static void main(String[] args) {
Source source = new Source();
Targetable target = new Adapter(source);
target.method1();
target.method2();
}
}
接口的适配器模式
接口的适配器是这样的:有时我们写的一个接口中有多个抽象方法,当我们写该接口的实现类时,必须实现该接口的所有方法,这明显有时比较浪费,因为并不是所有的方法都是我们需要的,有时只需要某一些,此处为了解决这个问题,我们引入了接口的适配器模式,借助于一个抽象类,该抽象类实现了该接口,实现了所有的方法,而我们不和原始的接口打交道,只和该抽象类取得联系,所以我们写一个类,继承该抽象类,重写我们需要的方法就行。
3中模式充分的体现了适配器模式的作用,
适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。
类的适配器模式:
核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口是Targetable,通过Adapter类,将Source的功能扩展到Targetable里
例子:
public class Source { public void method1() { System.out.println("this is original method!"); } } public interface Targetable { /* 与原类中的方法相同 */ public void method1(); /* 新的方法 */ public void method2(); } //类Source和接口Targetable因为不兼容,导致不能在一起工作 //适配器Adapter则可以在不改变源代码的基础上解决这个问题 //这样Targetable接口的实现类Adapter的对象即使Targetable类型,也能访问到Source中的方法 public class Adapter extends Source implements Targetable { public void method2() { System.out.println("this is the targetable method!"); } } //测试类 这样Targetable接口的实现类就具有了Source类的功能。 public class AdapterTest { public static void main(String[] args) { Targetable target = new Adapter(); target.method1(); target.method2(); } }
对象的适配器模式:
基本思路和类的适配器模式相同,只是将Adapter类作修改,这次不继承Source类,而是持有Source类的实例,以达到解决兼容性的问题
例子:
public class Source {
public void method1() {
System.out.println("this is Source method!");
}
}
public interface Targetable {
public void method1();
public void method2();
}
public class Adapter implements Targetable{
private Source source;
public Adapter(Source source) {
this.source = source;
}
@Override
public void method1() {
source.method1();
}
@Override
public void method2() {
System.out.println("this is the targetable method!");
}
}
public class Test {
public static void main(String[] args) {
Source source = new Source();
Targetable target = new Adapter(source);
target.method1();
target.method2();
}
}
接口的适配器模式
接口的适配器是这样的:有时我们写的一个接口中有多个抽象方法,当我们写该接口的实现类时,必须实现该接口的所有方法,这明显有时比较浪费,因为并不是所有的方法都是我们需要的,有时只需要某一些,此处为了解决这个问题,我们引入了接口的适配器模式,借助于一个抽象类,该抽象类实现了该接口,实现了所有的方法,而我们不和原始的接口打交道,只和该抽象类取得联系,所以我们写一个类,继承该抽象类,重写我们需要的方法就行。
public interface Sourceable { public void method1(); public void method2(); } public abstract class Adapter implements Sourceable { public void method1() {} public void method2() {} } public class Test { public static void main(String[] args) { Sourceable source = new Sourceable() { @Override public void method2() { // TODO Auto-generated method stub } @Override public void method1() { // TODO Auto-generated method stub } }; Sourceable source2 = new Adapter() { @Override public void method1() { // TODO Auto-generated method stub super.method1(); } }; } }
3中模式充分的体现了适配器模式的作用,
相关文章推荐
- 基于Java的开源的模型驱动转换器和抽象用户接口标识语言6.1发布
- java设计模式(7):适配器模式(Adapter)
- Java系列--第六篇 基于Maven的SSME之多国语言实现
- 基于Java语言构建区块链(一)—— 基本原型
- java23种设计模式之适配器模式(Adapter)
- OpenJWeb(v1.9)企业级信息化应用平台开源版发布公告(基于Java语言开发)
- java 设计模式之一 适配器模式 adapter
- 基于Java语言的安卓程序编写之七TextView控件
- 一种基于java语言的模板引擎velocity的使用
- 基于Java语言的安卓编程之十九按键事件监听(上)
- 基于Java语言的安卓程序编程之一环境搭建2
- Base64编码介绍及基于Java语言实现
- java语言基于万准衡器(吊钩秤)的串口通信案例
- java适配器模式(Adapter 模式)
- Java语言规范基于JavaSE9 第七章 包和模块(一)
- java 适配器模式(Adapter)
- Java语言深入--基于JNDI的应用开发
- Java 常用设计模式-适配器模式adapter
- JAVA设计模式(06):结构型-适配器模式(Adapter)
- 基于Java语言的51单片机串口通讯PC机程序