策略模式(java)

package cn.itcast.行为模式.策略模式;


import org.junit.Test;

/*
   策略模式:
       该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。
        策略模式属于对象行为模式。它通过对算法进行封装,把使用的算法的责任和算法实现分割开来,并委派给不同的对象
        对这些算法进行管理。
 */
public class StrategyTest01 {
    // 定义一个抽象武器接口
    interface Weapon{
        // 定义一个抽象使用武器的方法
        void UseWeapon();
    }
    // 抽象武器的实现类 1
    class AKM implements Weapon{
        @Override
        public void UseWeapon() {
            System.out.println("使用AKM扫射敌人");
        }
    }
    // 抽象武器的实现类 2
    class M416 implements Weapon{
        @Override
        public void UseWeapon() {
            System.out.println("使用M146单点敌人");
        }
    }
    // 创建一个 角色
    class Character {
        // 武器作为我的 一个成员变量
        private Weapon weapon;
        public Character(){
        }
        public Character(Weapon weapon){
            this.weapon=weapon;
        }

        public Weapon getWeapon() {
            return weapon;
        }

        public void setWeapon(Weapon weapon) {
            this.weapon = weapon;
        }

        public void UseWeaponKill(){
            this.weapon.UseWeapon();
        }
    }

    // 测试
    @Test
    public void test(){
        // 创建人物
        Character character=new Character(new AKM());
        character.UseWeaponKill();// 使用武器
        // 切换武器
        character.setWeapon(new M416());
        character.UseWeaponKill();// 使用武器

    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值