2008-12-23 38 views

回答

6

当您使用策略模式时,您希望其他类依赖于接口而不是具体的策略。做到这一点的一种方法是将具体策略注入到一个将它用作界面的类中,而不是让班级理解如何创建适当的策略。这是IoC /依赖注入的地方。

这个想法可能是你有某种配置或决策类来定义使用哪种策略。这可能是一个IoC框架,但它不一定非要。该类负责根据系统状态或配置使用适当策略配置其他类。具体策略是通过构造函数或属性设置器创建和注入的,因此对实例化策略类的“控制”是“倒置的” - 它不是由类取决于它而是从外部完成的。

2

它本身并没有引入控制反转。如果模式的开发者实现它,以便可交换算法被注入到控制器中,那么就是反转。另一方面,如果实现者从其他某个源获得算法(如配置,或者通过其他方法在控制器的构造函数中确定它),那么这只是您的普通型的代码。

-1

IOC可以被看作是一个主要的(结束),可以是使用战略模式(手段)作为服务协商者模式可能是另一种选择。

+1

究竟是什么意思大声笑.. – brumScouse 2011-11-03 13:57:51

相关问题