通俗易懂java设计模式——策略模式(Strategy)

通俗易懂java设计模式——策略模式(Strategy)

策略模式:它定义了算法簇,分别封装起来。让它们之间可以互相替换,可以适合增加删除使用一个或者多个算法,此模式让算法的变化,不会影响到使用算法的客户。

举例:
最近公司leader 遇到了资金短缺问题,召集公司成员开会,然后好不尴尬的给员工下了一个命令,各自准备为公司做点小奉献,凑点钱,至于怎么凑,就看员工几己了。。。

简单看看我们博大精深的汉子文化对“策略”的解释:
1、可以实现目标的方案集合;
2、根据形势发展而制定的行动方针和斗争方法;

此时的场景: 我们来对号入座下,leader 的目标凑钱,让员工们来凑钱(实现目标的方案),然后不同的员工如何凑够自己的钱,自己想办法,得自己实现,比如下面:

方案1卖白菜(员工1 目标凑钱){卖白菜凑钱 赚了20块}(一般般)
方案2炒股(员工2 目标凑钱){炒股凑钱  亏了3000块}(要被炒了)
方案3卖屁屁(员工3 目标凑钱){卖屁屁凑钱 赚了两万块}(哈哈哈,好员工)

对应到代码中的应用,我们简单来敲一下下:

Leader 的龌龊目标 - 赚钱,我们定义成接口,然后才能让员工实现赚钱的目标,去各自凑钱。

//目标,老板给的命令(声明策略)
public interface GetMoneyInter{
    public int GetMoney();//返回获得的凑钱数
}

//方案(实现策略)
public class Member1 implements GetMoneyInter{
    @Override
    public int GetMoney() {
        //卖白菜凑钱 赚了20块
        return 20;
    }
}
//方案(实现策略)
public class Member2 implements GetMoneyInter{
    @Override
    public int GetMoney() {
        //炒股凑钱 赚了3000块
        return 3000;
    }
}

//方案(实现策略)
public class Member3 implements GetMoneyInter{
    @Override
    public int GetMoney() {
        //卖屁屁凑钱 赚了两万块
        return 20000;
    }
}


//老板要收取赃款了(运用策略,)
public class LeaderSimleGetMoney{

    int money = -3000;//原本负债3000
    private GetMoneyInter getMoneyInter;

    //看员工策略总共凑集多少钱
    int 张三Money = getBy(new Member1());
    int 李四Money = getBy(new Member2());
    int 王五Money = getBy(new Member3());

    int total = 张三Money+李四Money+王五Money;//总共凑的钱

    int leave = total+money;//还剩多少

    Log.e("奖励","王五优秀员工了");

}


//
public int getBy(GetMoneyInter getMoneyInter){
    return getMoneyInter.GetMoney();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值