> 文章列表 > 策略模式详解(英雄联盟上王者案例)

策略模式详解(英雄联盟上王者案例)

策略模式详解(英雄联盟上王者案例)

"且听说书人把对和错变成利与弊,把铜板藏入衣袖笑着说道德里哪有枪和毙"🌹

引入:

想必小伙伴们都玩过LOL吧?想必你还没有上过王者吧?(我也是小菜鸡,最高段位打到黄金)吼吼吼,假如,我是说假如,你现在抛开学习不谈,就是想上王者。你能怎么办?无非就是几种方法,纯靠自己,日夜苦练,如果你天赋异禀,几个月就可以上王者啦!或者,你找个贼厉害的室友,抱他大腿,让他带飞;或者你有足够的money,找小代,,,俗话说,十个豹女九个代。

实际上,不知不觉中,你就用到了策略模式,策略模式无非就是处于不同情境下选择解决问题的方式

策略模式涉及到三个类:

环境类(Context):通过 ConcreteStrategy 具体策略类来配置,持有 Strategy 对象并维护对Strategy 对象的引用。
抽象策略类(Strategy):定义所有支持的策略的公共接口。 Context使用这个接口来调用某ConcreteStrategy 定义的算法。
具体策略类(ConcreteStrategy ):抽象策略类的具体实现。

抽象策略类(定义了你上王者的规范):

package com.app.strategy_app;public abstract class Strategy {public abstract void operate();
}

具体策略类(你上王者的具体解决方案):

package com.app.strategy_app;public class YourSelfStrategy extends Strategy{@Overridepublic void operate() {System.out.println("日夜苦练,靠自己上王者!");}
}
package com.app.strategy_app;public class PartnerStrategy extends Strategy{@Overridepublic void operate() {System.out.println("抱大腿,让室友带飞上王者!");}
}
package com.app.strategy_app;public class MoneyStrategy extends Strategy{@Overridepublic void operate() {System.out.println("花费资金,找代练上王者!");}
}

环境类(你处于一个什么都不想干,只想上王者的状态):

package com.app.strategy_app;public class Context {private Strategy strategy;public Context(Strategy strategy) {this.strategy = strategy;}public void setStrategy(Strategy strategy) {this.strategy = strategy;}public void operate(){this.strategy.operate();}}

调用(你已经开始执行上王者的计划):

package com.app.strategy_app;public class TestStrApp {public static void main(String[] args) {
//        找代练Context money = new Context(new MoneyStrategy());money.operate();
//        抱室友的大腿Context partner = new Context(new PartnerStrategy());partner.operate();
//        靠自己上Context you = new Context(new YourSelfStrategy());you.operate();}
}

之后,你就上王者啦!无论,你采用了哪种方法,事实就是,你现在已经是王者了~
策略模式详解(英雄联盟上王者案例)

策略模式主要体现在spring中的Resource类中
策略模式详解(英雄联盟上王者案例)
完结撒花!❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀