zoukankan      html  css  js  c++  java
  • 设计模式(策略模式)

    本文从HeadFirst阅读后记录:


    以下文件在同一目录下,采用策略模式:

    character.java:

    public abstract class character{
        weaponBehavior weapon_;
    	
    	public void fight(){
    	   weapon_.useWeapon();
    	}
    	
    	public void setWeapon(weaponBehavior w){
    	   this.weapon_=w;
    	}
    
    
    }

    weaponBehavior.java

    public interface weaponBehavior{
        public void useWeapon();
    
    }


    knifeBehavior.java

    public class knifeBehavior implements weaponBehavior{
        public void useWeapon(){
    	   System.out.println("this is a knife");
    	}
    
    
    }


    bowAndArrowBehavior.java

    public class bowAndArrowBehavior implements weaponBehavior{
        public void useWeapon(){
    	   System.out.println("this is a BowAndArrow");
    	}
    
    }


    axeBehavior.java

    public class axeBehavior implements weaponBehavior{
        public void useWeapon(){
    	   System.out.println("this is a Axe");
    	}
    }


    swordBehavior.java

    public class swordBehavior implements weaponBehavior{
        public void useWeapon(){
    	   System.out.println("this is a Sword");
    	}
    
    }


    queen.java

       public class queen extends character{
    	public queen(){
    	     weapon_=new knifeBehavior();
    	}
    };
    

    weapon.java

    import java.io.*;
    
    public class weapon {
       public static void main(String[] args){
           queen q=new queen();
    	   q.setWeapon(new bowAndArrowBehavior());
    	   q.fight();
       }
    
    };


    对应的类图:



  • 相关阅读:
    hdu4930 模拟斗地主
    hdu4930 模拟斗地主
    hdu4923 f(A,B)分段处理
    hdu4923 f(A,B)分段处理
    poj2112 二分最大流+Floyd
    poj2112 二分最大流+Floyd
    POJ1149 PIGS(最大流)
    POJ1149 PIGS(最大流)
    对最大团的理解
    对最大团的理解
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3320177.html
Copyright © 2011-2022 走看看