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

来源:互联网 发布:网络赚钱的门路和技巧 编辑:程序博客网 时间:2024/05/18 01:41

通俗易懂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();}