java设计模式_适配器模式

新手+菜鸟,入门设计模式,有什么不对的地方,请各位灌水。我表示灰常欢迎。废话少说,上代码。

一,类适配器

package com.wangbiao.test;


/**
 * 适配器模式,类适配器和对象适配器,适配器,将已经存在的东西转换为我们能用的东西,USB接口就是一个适配器
 * 已经存在一个特殊的功能,但是我的接口和实现类没有那个功能,并且我不想改变我的接口和实现类,可以采用适配器模式
 * 2013/03/29
 * @author WangBiao
 *
 */
public class ClassAdapter {

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


class Adaptee{
	
	public void charge(){
		System.out.println("I can charge for electric device");
	}
}

class Adapter extends Adaptee implements Target{
	
	public void data_transfer(){
		super.charge();
	}
}

interface Target{
	public void data_transfer();
	
}

class CommonFunction implements Target{
	public void data_transfer(){
		System.out.println("transfer data is ok");
	}
}

二,对象适配器

package com.wangbiao.test;

/**
 * 适配器模式,类适配器和对象适配器,适配器,将已经存在的东西转换为我们能用的东西,USB接口就是一个适配器
 * 已经存在一个特殊的功能,但是我的接口和实现类没有那个功能,并且我不想改变我的接口和实现类,可以采用适配器模式
 * 2013/03/29
 * @author WangBiao
 *
 */
public class ObjectAdapter {

	
	public static void main(String[] args) {
		
		Target_second target= new Adapter_second(new Adaptee_second());
		target.data_transfer();
	}
}

class Adaptee_second{
	
	public void charge(){
		System.out.println("I can charge for electric device");
	}
}

class Adapter_second implements Target_second{
	
	private Adaptee_second adaptee;
	public Adapter_second(Adaptee_second adaptee) {
		// TODO Auto-generated constructor stub
		this.adaptee=adaptee;
	}
	@Override
	public void data_transfer() {
		this.adaptee.charge();
	}
	
}

interface Target_second{
	public void data_transfer();
	
}

class CommonFunction_second implements Target_second{
	public void data_transfer(){
		System.out.println("transfer data is ok");
	}
}

你可能感兴趣的:(java,设计模式_适配器模式)