zoukankan      html  css  js  c++  java
  • 策略模式

    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);
    }
    

      

      

  • 相关阅读:
    生成函数学习笔记
    CF1437F Emotional Fishermen
    BZOJ 1443 [JSOI2009]游戏Game
    BZOJ 1018 [SHOI2008]堵塞的交通traffic
    访问量破1000之记录
    BZOJ 1022 [SHOI2008]小约翰的游戏John
    BZOJ1457 棋盘游戏
    BZOJ1874: [BeiJing2009 WinterCamp]取石子游戏
    BZOJ 1188 [HNOI2007]分裂游戏
    Codeforces Round #345 (Div. 2)
  • 原文地址:https://www.cnblogs.com/fanerna/p/5400661.html
Copyright © 2011-2022 走看看