• 策略模式


    package lloo;
    
    public class Application1 {
      public static  void  main  (String  args[])
      {
    	  Character   character=new   Character();
    	  character.setWeaponBehavior(new KnifeBehavior());
    	  character.setName("king");
    	  int n=200;   //武器伤害值
    	  character.display(n);  
    	  System.out.printf("%s的武器装备:%4d
    ",character.getName(),character.fight());
    	  System.out.println("匕首刺杀");
    	  character.setWeaponBehavior(new SwordBehavior());
    	  character.setName("Queen");
    	  int n1=400;   //武器伤害值
    	  character.display(n1);  
    	  System.out.printf("%s的武器装备:%4d
    ",character.getName(),character.fight());
    	  System.out.println("长剑刺杀");
    	  character.setWeaponBehavior(new AxeBehavior());
    	  character.setName("Knight");
    	  int n2=300;//武器伤害值
    	  character.display(n2); 
    	  System.out.printf("%s的武器装备:%4d
    ",character.getName(),character.fight());
    	  System.out.println("斧头劈砍");
    	  character.setWeaponBehavior(new BowAndArrowBehavior());
    	  character.setName("Troll");
    	  int n3=100;   //武器伤害值
    	  character.display(n3);  
    	  System.out.printf("%s的武器装备:%4d
    ",character.getName(),character.fight());
    	  System.out.println("弹弓射击");
      }
    }
    

      

    package lloo;
    
    public class AxeBehavior   implements WeaponBehavior {
    public  void useWeapon(int n)
    {
    }
    }
    package lloo;
    
    public class BowAndArrowBehavior  implements  WeaponBehavior {
    
    	
    	public void useWeapon(int n)
    	{
    		
    	}
    
    }
    package lloo;
    
    public class Character {
            WeaponBehavior    weaponBehavior;
            	String  name;
            	int  f;
            public    void  setWeaponBehavior(WeaponBehavior  weaponBehavior)
            {
            	this.weaponBehavior=weaponBehavior;
            }
    public void  display(int n)
    {
    	f=n;
    	if (weaponBehavior!=null)
    		   weaponBehavior.useWeapon(n);
    	   else 
    		   System.out.println("没有武器可用");
    }
    public int  fight( )
    {
    	return f;
    }
    public void setName(String s)
    {
    	name=s;
    }
    public  String getName()
    {
    	 return  name;
    }
    }
    

      

    package lloo;
    
    public class  KnifeBehavior   implements  WeaponBehavior {
    	
    	public void useWeapon(int n) {
    	
    		
    	}
    
    }
    

      

    package lloo;
    
    public class SwordBehavior  implements WeaponBehavior
    {
    	public void useWeapon(int n) {
    		
    		
    	}
    }
    

      

    package lloo;
    
    public interface WeaponBehavior {
        public  void   useWeapon(int  n);
    }
    

      

      

  • 相关阅读:
    架构 框架 设计模式 --备用
    机器视觉项目开发之---织物疵点检测机器视觉系统 软件测试平台
    多媒体开发之--- live555 vs2010/vs2013下编译,使用,测试
    多媒体开发之--- h264 图像、帧、片、NALU
    多媒体开发之---H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
    多媒体开发之---h264格式slice_header
    图像处理之基础---傅立叶c实现
    图像处理之基础---小波提取特征
    图像处理之基础---图像的特征简介
    嵌入式开发之工具---log file
  • 原文地址:https://www.cnblogs.com/fanerna/p/5400661.html
Copyright © 2020-2023  润新知