您的位置:首页 > 编程语言 > Java开发

我理解的--java适配器模式

2016-03-26 23:54 393 查看
适配器理解起来有点问题,网上大多都是插座的例子也是出自设计模式一书。分为类和对象适配器。过程是:已有的类---------》适配器-----------》需要的类(接口)。

功能用到的还是原来的类的函数,只是在外面包装了一下,这有点像代理模式。

把原有的类作为参数传给adapter(适配器),适配器同时又继承了已有的接口,就是用适配器去把已有的类包装成需要的类。

有几点:

1.为什么去包装?

2.怎么包装。(继承和组合)

我的理解:::他包装后更多的不是关注实现的功能,比如print("a")还是print("b").而是代码的复用。需要的接口(target)只有固定的函数。比如print,具体里面的实现是什么,他不关心。你把现有的A类或B类或。。。,包装后,都只有一个print方法,这在工程中就不用改变了,实现了代码的复用。

已有的A类:

class A {
public void printA() {
System.out.println("在A中工作");
}
}

已有的B类:

class B {
public void printB() {
System.out.println("在B中工作");
}
}
需要的接口:

public interface Target {
void print();
}
适配adapter

class Adapter implements Target {
A a;

Adapter(A a) {
this.a = a;
}

@Override
public void print() {
a.printA();

}

}

注意上面适配器可以包装B,把A换成B即可。

测试:

class Test {

public static void main(String[] args) {
A a = new A();
Target target = new Adapter(a);
target.print();
}

}

结果:在A中工作。

换成B后:

结果:在B中工作。

也就是说:实现的功能还是原来的类的功能。只是实现了代码的复用。

理解不到的地方请指正
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息