• 设计模式 适配器模式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();
    	}
    
    }
    
    
  • 相关阅读:
    简爱 灵魂所在
    charles抓取http/https
    Class.forName()用法
    ArrayList源码剖析
    java中的多线程
    分布式负载均衡缓冲系统,如何快速定位到是那个服务器
    maven依赖jar包时版本冲突的解决
    简单工厂模式设计(java反射机制改进)
    Fiddler 抓包工具使用详解
    Fiddler 使用
  • 原文地址:https://www.cnblogs.com/yufenghou/p/6039912.html
Copyright © 2020-2023  润新知