任何人都可以确切地解释战略模式如何与控制反转相关联?
使用策略模式时,您希望其他类依赖于接口而不是具体策略.实现此目的的一种方法是将具体策略注入到使用它作为接口的类中,而不是让类理解如何创建适当的策略.这就是IoC/Dependency Injection的用武之地.
我们的想法是,您可以使用某种配置或决策类来定义要使用的策略.这可能是一个IoC框架,但并不一定如此.此类负责根据系统状态或配置使用适当的策略配置其他类.具体策略是通过构造函数或属性设置器创建和注入的,因此"控制"实例化哪个策略类是"反转" - 它不是由类依赖于它而是从外部完成.