zoukankan      html  css  js  c++  java
  • 设计模式 适配器模式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();
    	}
    
    }
    
    
  • 相关阅读:
    SDWebImage内部实现过程
    物理仿真元素
    物理仿真元素
    运行时案例
    使用运行时交换我们自定义的方法
    运行时交换系统方法
    HTML 钟表 小时钟
    JS小游戏寻找房祖名
    程序启动的完整过程
    ApplicationDelegate里的方法
  • 原文地址:https://www.cnblogs.com/yufenghou/p/6039912.html
Copyright © 2011-2022 走看看