DesignPatterns->适配器模式

package com.zhiru;
/*
 * 类适配模式
 * 适配器模式重要作用是:要复用已存在的类。
 * 使一个类的接口成为客户希望的接口。
 * 组成元素包括:Adapter,Adaptee,Client,Target.
 */
interface Fruit{
	void color();
	void shape();
}
class Apple implements Fruit{

	@Override
	public void color() {
		// TODO Auto-generated method stub
		System.out.println(Apple.class+"==red");
	}

	@Override
	public void shape() {
		// TODO Auto-generated method stub
		System.out.println(Apple.class+"==round");
	}
	
}
class Orange implements Fruit{

	@Override
	public void color() {
		// TODO Auto-generated method stub
		System.out.println(Orange.class+"==yellow");
	}

	@Override
	public void shape() {
		// TODO Auto-generated method stub
		System.out.println(Orange.class+"==round");
	}
	
}
//Adaptee
class Tomato {
	public void tColor(){
		System.out.println(Tomato.class+"==Light yellow");
	}
	public void tShape(){
		System.out.println(Tomato.class+"==approximate round");
	}
}
//Adapter
class FruitAdapter implements Fruit{

	private Tomato t;
	public FruitAdapter(Tomato t){
		this.t=t;
	}
	@Override
	public void color() {
		// TODO Auto-generated method stub
		t.tColor();
	}

	@Override
	public void shape() {
		// TODO Auto-generated method stub
		t.tShape();
	}
	
}
public class AdapterPattern {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Apple a=new Apple();
		Orange o=new Orange();
		FruitAdapter fa=new FruitAdapter(new Tomato());
		a.color();a.shape();
		o.color();o.shape();
		fa.color();fa.shape();
	}

}
参考博客:http://blog.csdn.net/ithzhang/article/details/7592598
class com.zhiru.Apple==red
class com.zhiru.Apple==round
class com.zhiru.Orange==yellow
class com.zhiru.Orange==round
class com.zhiru.Tomato==Light yellow
class com.zhiru.Tomato==approximate round

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