漫画:星球入侵之策略模式



public?class?SimpleHero?{
????public?void?fight?(String condition) {
????????if?(condition ==?null?) {
????????????return;
????????}
????????if?("AgainstTheWind".equals(condition)) {
????????????System.out.println("逆风翻盘策略");
????????} else?if?("DownwindSuppression".equals(condition)) {
????????????System.out.println("顺风压制策略");
????????} else?if?("BalanceInPower".equals(condition)) {
????????????System.out.println("势均力敌策略");
????????}
????}
????public?static?void?main(String[] args) {
????????SimpleHero simpleHero = new?SimpleHero();
????????simpleHero.fight("AgainstTheWind");
????}
}

策略模式:定义一些算法族,分别封装,让他们可以相互替换,此模式让算法的变化独立于使用算法的客户。该设计模式属于行为型模式。
策略模式UML图:

public?interface?Strategy?{
????public?void?fight();
}
public?class?AgainstTheWindStrategy?implements?Strategy?{
????@Override
????public?void?fight()?{
????????System.out.println("逆风翻盘策略");
????}
}
public?class?BalanceInPowerStrategy?implements?Strategy?{
????@Override
????public?void?fight()?{
????????System.out.println("势均力敌策略");
????}
}
public?class?DownwindSuppressionStrategy?implements?Strategy?{
????@Override
????public?void?fight()?{
????????System.out.println("顺风压制策略");
????}
}
public?class?Hero?{
????private?Strategy strategy;
????public?Hero(Strategy strategy)?{
????????this.strategy = strategy;
????}
????public?void?useStrategem()?{
????????strategy.fight();
????}
}
public?class?Battlegroud?{
????public?static?void?main(String[] args)?{
????????Hero hero = new?Hero(new?AgainstTheWindStrategy());
????????hero.useStrategem();
????????Hero hero1 = new?Hero(new?BalanceInPowerStrategy());
????????hero1.useStrategem();
????????Hero hero2 = new?Hero(new?DownwindSuppressionStrategy());
????????hero2.useStrategem();
????}
}
tips :
策略模式优点:满足开闭原则,当新增策略时,只需要新增策略实现类,方便扩展,避免大量的if..else。
策略模式缺点:客户端需要知道所有的策略实现类,如果策略比较多的时候,类的数量也会比较多。





火爆技术人的中台是什么?如何搭建中台?如何选择?「中台战略」作者亲自为你一一揭秘!报名戳:https://edu.csdn.net/huiyiCourse/detail/1098

?日均350000亿接入量,腾讯TubeMQ性能超过Kafka


关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 中央经济工作会议在北京举行 7904354
- 2 紧急提醒:请在日中国公民进行登记 7808418
- 3 中央定调明年继续“国补” 7714076
- 4 “九天”无人机成功首飞 7617549
- 5 断崖式降温!今冬最强寒潮来了 7520602
- 6 中央经济工作会议释信号:3件事不做 7427772
- 7 中国“空中航母”首飞成功 7331655
- 8 00后女生摆摊卖水培蔬菜日售千元 7238776
- 9 人民空军中日双语发文:大惊小怪 7136765
- 10 寒潮来袭 “速冻”模式如何应对 7040506



![豆宛yu今天这个晨练就到这[微笑] ](https://imgs.knowsafe.com:8087/img/aideep/2024/2/2/96c6d82c9d6c1ebfd3ccd0e5bc06b7d3.jpg?w=250)



程序人生
