1、什么是策略模式:
策略模式是对算法的包裹,把算法的责任和本身分开,委派给不同的对象管理,最终可解决多重if判断问题。
2、应用场景
传统代码中存在多重if判断语句,类此代码过于冗余,客观性和扩展性极弱。使用策略模式可以通过DB或者枚举类进行维护各具体行为的关系,也可做成可视化管理平台,管理各行为接口的权限和动态扩展。
3、底层实现原理:
将共同的行为抽取出来作为一个共同算法行为标准(接口),每个单独的策略行为继承父接口。
4、实现步骤
-
首先定义抽象策略角色(Strategy),此角色为所有具体策略的算法父接口。
-
定义各具体子类的算法,并实现父类接口,并交给spring容器进行管理。
-
Context环境角色持有一个Strategy的引用,维护所有具体子类的算法行为。在此类中使用了spring的基础知识,通过beanid去spring容器获取bean对象(参考步骤2,使用component注入到spring容器中),然后通过子类实现父类并重写父类中的方法。
-
定义接口入口的rest类。
5. 策略模式优缺点:
优:解决多重if判断,提高扩展性、维护性增强、提高可读性
缺:后期维护不同策略类多,定义类