您的位置:首页 > 其它

设计模式之适配器模式

2010-05-31 22:03 225 查看
public class AdapterTest1
{
	public static void main(String[] args)
	{
		Player b = new Forwards("巴蒂尔");
		b.Attack();

		Player m = new Guards("麦克格雷迪");
		m.Attack();

		Player ym = new Translator("姚明");
		ym.Attack();
		ym.Defense();

		System.out.println();
	}
}
abstract class Player
{
	protected String name;
	public Player(String name)
	{
		this.name = name;
	}
	public abstract void Attack();
	public abstract void Defense();
}
class Forwards extends Player
{
	public Forwards(String name)
	{
		super(name);
	}
	public void Attack()
	{
		System.out.println("前锋"+name+"进攻");
	}
	public void Defense()
	{
		System.out.println("前锋"+name+"防守");
	}
}
class Center extends Player
{
	public Center(String name)
	{
		super(name);
	}
	public void Attack()
	{
		System.out.println("中锋"+name+"进攻");
	}
	public void Defense()
	{
		System.out.println("中锋"+name+"防守");
	}
}
class Guards extends Player
{
	public Guards(String name)
	{
		super(name);
	}
	public void Attack()
	{
		System.out.println("后位"+name+"进攻");
	}
	public void Defense()
	{
		System.out.println("后位"+name+"防守");
	}
}
class ForeignCenter
{
	private String name;
	public String getname()
	{
		return name;
	}
	public void setname(String name)
	{
		this.name = name;
	}
	public void 进攻()
	{
		System.out.println("外援中锋"+name+"进攻");
	}
	public void 防守()
	{
		System.out.println("外援中锋"+name+"防守");
	}
}
class Translator extends Player
{
	private ForeignCenter wjzf = new ForeignCenter();
	public Translator(String name)
	{
		super(name);
		wjzf.setname(name);
	}
	public void Attack()
	{
		wjzf.进攻();
	}
	public void Defense()
	{
		wjzf.防守();
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: