`
return_space
  • 浏览: 20112 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

适配器模式

 
阅读更多

适配器模式:客户端调用某一个类型 Adapter,该类型只有operationTwo(),但是客户端现在希望调用这个类型的同时,也要执行另一个类型 Source 的operationOne(),这时候我们就要使用“适配器模式”。

 

解决方案为:我们抽象一个接口Target,该接口拥有operationOne()与operationTwo(),将Adapter这个类型继承Source 类型,实现接口Target。

 

核心思想就是:通过抽象接口,满足客户端的期待,从而使不同接口类可以一起工作。

 

具体代码如下:

 

package com.mkf.pattern;

public class Source {
	public void operationOne() {
		System.out.println("源被调用: " + Source.class.getName());
	}
}

package com.mkf.pattern;

public interface Target {
	public void operationOne();

	public void operationTwo();
}

package com.mkf.pattern.impl;

import com.mkf.pattern.Source;
import com.mkf.pattern.Target;

public class Adapter extends Source implements Target {

	@Override
	public void operationTwo() {
		System.out.println("适配器被调用: " + Adapter.class.getName());
	}

}

package com.mkf;

import com.mkf.pattern.Target;
import com.mkf.pattern.impl.Adapter;

public class TestAdapter {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Target t = new Adapter();
		t.operationOne();
		t.operationTwo();
	}

}

 

 

执行结果:

 

源被调用: com.mkf.pattern.Source
适配器被调用: com.mkf.pattern.impl.Adapter

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics