设计模式 适配器模式2

先写player类


public abstract class Player {

	protected String name;
	public Player(String name)
	{
		this.name=name;
	}
	
	public abstract void Attack();
	public abstract void Defense();
}

在写几个类用来继承Player类


public class Center extends Player{

	public Center(String name) {
		super(name);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void Attack() {
		// TODO Auto-generated method stub
		System.out.println("中锋"+name+"进攻");
	}

	@Override
	public void Defense() {
		// TODO Auto-generated method stub
		System.out.println("中锋"+name+"防守");
	}

}


public class Guards extends Player{

	public Guards(String name) {
		super(name);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void Attack() {
		// TODO Auto-generated method stub
		System.out.println("后卫"+name+"进攻");
	}

	@Override
	public void Defense() {
		// TODO Auto-generated method stub
		System.out.println("后卫"+name+"防守");
	}

}


public class Forwards extends Player{

	public Forwards(String name) {
		super(name);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void Attack() {
		// TODO Auto-generated method stub
		System.out.println("前锋"+name+"进攻");
	}

	@Override
	public void Defense() {
		// TODO Auto-generated method stub
		System.out.println("前锋"+name+"防守");
	}

}

但是由于姚明同学是外籍人,所以写一个外籍的运动员


public class ForeignCenter {
	private String name;


	
	public void jingong()
	{
		System.out.println("外籍中锋"+name+"进攻");
	}
	
	public void fangshou()
	{
		System.out.println("外籍中锋"+name+"防守");
	}
	
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	
	
}

再给姚明配一个翻译


public class Translator extends Player{

	private ForeignCenter foreignCenter = new ForeignCenter();
	
	public Translator(String name) {
		super(name);
		// TODO Auto-generated constructor stub
		foreignCenter.setName(name); 
	}

	@Override
	public void Attack() {
		// TODO Auto-generated method stub
		foreignCenter.jingong();
	}

	@Override
	public void Defense() {
		// TODO Auto-generated method stub
		foreignCenter.fangshou();
	}
	

}

再写测试类


public class Program {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Player bPlayer =new Forwards("巴蒂尔");
		bPlayer.Attack();
		
		Player mPlayer=new Guards("麦迪");
		mPlayer.Attack();
		
		Player ym =new Translator("姚明");
		ym.Attack();
		ym.Defense();
	}

}

posted @ 2016-11-07 17:57  yufenghou  阅读(141)  评论(0)    收藏  举报