本文主要是介绍通俗易懂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{@Overridepublic int GetMoney() {//卖白菜凑钱 赚了20块return 20;}
}
//方案(实现策略)
public class Member2 implements GetMoneyInter{@Overridepublic int GetMoney() {//炒股凑钱 赚了3000块return 3000;}
}//方案(实现策略)
public class Member3 implements GetMoneyInter{@Overridepublic int GetMoney() {//卖屁屁凑钱 赚了两万块return 20000;}
}//老板要收取赃款了(运用策略,)
public class LeaderSimleGetMoney{int money = -3000;//原本负债3000private 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();
}
这篇关于通俗易懂java设计模式——策略模式(Strategy)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!