12、Strategy 策略模式

策略模式 Strategy 

在策略模式中,一个类的行为或者其算法运行时更改,这种类型的设计模式属于行为型模式

意图:定义一系列的算法,把他们一个个封装起来,并且他们可以互相替换

主要解决: 在有多种算法相似的情况下, 使用 if  else 带来的复杂难以维护

何时使用:一个系统有许多类,而区分他们的只是他们直接的行为

如何解决:将算法封装成一个一个的类,任意的替换

关键代码:实现同一个接口

优点:算法可以任意切换,避免使用多种判断,扩展性好

使用场景:

1.如果在一个系统里有许多类,他们之间的区别仅在于他们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为

2.一个系统需要动态低在几种算法中选择一种

参考:https://www.runoob.com/design-pattern/strategy-pattern.html

原文地址:https://www.cnblogs.com/bytecodebuffer/p/10470548.html