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

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

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

把原有的类作为参数传给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中工作。

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

理解不到的地方请指正




转载于:https://my.oschina.net/liuxinquan/blog/648006

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值