Kotlin策略模式如何动态添加新策略
在 Kotlin 中,策略模式可以通过使用接口和继承来实现。要动态添加新策略,你可以使用工厂方法或者依赖注入。这里有一个简单的例子来说明如何使用工厂方法动态添加新策略:
- 首先,定义一个策略接口:
interface Strategy {fun execute(): String}
- 然后,创建具体的策略实现:
class StrategyA : Strategy {override fun execute(): String {return "Strategy A executed"}}class StrategyB : Strategy {override fun execute(): String {return "Strategy B executed"}}
- 创建一个策略工厂接口:
interface StrategyFactory {fun createStrategy(): Strategy}
- 为每种策略创建一个工厂实现:
class StrategyAFactory : StrategyFactory {override fun createStrategy(): Strategy {return StrategyA()}}class StrategyBFactory : StrategyFactory {override fun createStrategy(): Strategy {return StrategyB()}}
- 使用工厂方法动态添加新策略:
fun main() {val strategyFactories = listOf<StrategyFactory>(StrategyAFactory(), StrategyBFactory())val strategies = strategyFactories.map { it.createStrategy() }.toList()strategies.forEach { strategy ->println(strategy.execute())}}
在这个例子中,我们首先定义了一个策略接口 Strategy
和两个具体的策略实现 StrategyA
和 StrategyB
。接着,我们创建了一个策略工厂接口 StrategyFactory
和两个工厂实现 StrategyAFactory
和 StrategyBFactory
。最后,我们在 main
函数中使用工厂方法动态地创建策略实例并执行它们。
要动态添加新策略,只需创建一个新的工厂实现并将其添加到 strategyFactories
列表中即可。