您当前的位置: 首页 > 

CSDN 程序人生

暂无认证

  • 1浏览

    0关注

    1993博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

CSDN 程序人生 发布时间:2019-11-20 12:12:49 ,浏览量:1

作者 | 小小小咖 本文经授权转载自 JAVA小咖秀(ID: javaxiaokashow) 比基盗星球还有2万公里将要到达我星球入侵。。。 此时的why星球

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

 热 文 推 荐  ☞ 金山办公上市,雷军心愿了却! ☞ 38年后的现在,用数据回顾女排精神!   ☞ 程序员正在消失? ☞ 小米 9 年,雷军开启 AIoT 与 5G 超级互联网时代!

☞5G套餐到底该不该换?看完你就明白啦!

☞ 他的公司1年令比特币暴跌数次,上榜福布斯捐10亿美元的跨界传奇

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

你点的每个“在看”,我都认真当成了喜欢 程序员专属定制马克杯,买二送一,戳原文下单
关注
打赏
1614322772
查看更多评论
立即登录/注册

微信扫码登录

0.0444s