我目前停留在试图编写不依赖服务位置的工厂类。 我能想到的唯一的另一种选择是使用构造函数注入来注入所有可能的实例,但这可能会导致意外,因为类是通过引用传递的。 一旦可能的供应商数量增长,它也可能会变得昂贵和混乱。 提供者本身是完全复杂的类,它们有自己的依赖关系,因此手工构建不在图片中。 更新服务位置例如: public class ProviderFactory : IProviderFactory
我有一个创建文本文件处理策略的引擎。这些文件采用各种格式,引擎通过将文件传递给一系列策略来选择适当的策略,直到其中一个策略声明它可以解析它。 这不是经典的战略模式。它与服务定位器模式和责任链模式有些相似,并可能包含其中的任何方面。 剥离下来,它看起来有点像这样,尽管它目前与注射创建: public class EngineImpl {
private Set<Strat> str
由于ServiceLocatorAwareInterface可能为removed from the AbstractController in ZF3,因此依赖关系应该通过构造函数或setter方法传递。 考虑到这一点,考虑用户或站点控制器的用例,其中包括注册,激活帐户,登录,注销等操作。至少需要一个UserService和2个表单。添加几个相关的操作(远程验证,帐户链接等),最终得到4或5个表单