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();
    	}
    
    }
    
    
  • 相关阅读:
    服务端渲染和客户端渲染
    【Airtest更新】AirtestIDE更新至1.2.10;Airtest更新至1.2.0
    AirtestIDE更新:1.2.9新版来袭~
    Airtest从入门到放弃?不要急,这份免费的“超长”攻略请收好!
    Airtest更新:1.1.9版本来袭~
    Airtest启动器的妙用--添加自定义的变量
    Airtest启动器的妙用--添加自定义的命令行参数
    脱离Mac搞iOS自动化,tidevice工具教你轻松实现!
    iOS自动化实操--设备基本信息获取与计算器案例详解
    Airtest快问快答,你们想问的这里都有!(第2期)
  • 原文地址:https://www.cnblogs.com/yufenghou/p/6039912.html
Copyright © 2011-2022 走看看