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


    对应的类图:



  • 相关阅读:
    springboot(十)使用LogBack作为日志组件
    springboot(九)文件上传
    django 安装
    macbook使用“终端”远程登录linux主机
    Mac 怎么通过自带终端连接linux服务器
    什么是变量?
    选择最好用的PyCharm IDE
    开发你的第一个Python程序
    Python介绍
    PyCharm 2017 安装教程
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3320177.html
Copyright © 2011-2022 走看看