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



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 习近平将发表二〇二六年新年贺词 7904141
- 2 2026年国补政策来了 7808738
- 3 东部战区:开火!开火!全部命中! 7712893
- 4 2026年这些民生政策将惠及百姓 7616985
- 5 小学食堂米线过期2.5小时被罚5万 7519709
- 6 解放军喊话驱离台军 原声曝光 7428214
- 7 为博流量直播踩烈士陵墓?绝不姑息 7327605
- 8 每月最高800元!多地发放养老消费券 7238391
- 9 数字人民币升级 1月1日起将计付利息 7141831
- 10 2026年1月1日起 一批新规将施行 7040675



![Whitebunny_发发微博[doge] ](https://imgs.knowsafe.com:8087/img/aideep/2021/11/24/eafd204252627add752c4be750d45a13.jpg?w=250)




程序人生
