参考链接:https://www.cnblogs.com/of-fanruice/p/11374200.html
策略模式: 定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。
工作模式:
1、将原基类中的一些行为功能剥离出来,封装不同的算法的接口基类及其子类。
2。 在原基类中将剥离出来的功能接口基类作为成员变量。
3。在子类中,根据具体的需要通过构造函数初始化继承于原基类中的功能接口类对象成员变量。
应用场景:
如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 2、一个系统需要动态地在几种算法中选择一种。 3、如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现。
优缺点:
优点:1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。
缺点:1、策略类会增多。 2、所有策略类都需要对外暴露
举例子:
网友评论