我最近开始在我的一个项目中使用DI.对于运行时相关类,我创建了相应的Abstract工厂.遵循这种模式后,我最终得到了太多的抽象工厂,几乎每个班级都有一个.
在使用IOC时,最终会有太多的抽象工厂吗?
场景:假设我从数据库中获取“实体”对象.用户可以在此实体对象上执行10种不同的用例.对于每个用例,我都有一个不同的类来处理它.在某些情况下,给定的用例可能具有子用例组件,这些组件也可能需要实体对象.
由于这些类依赖于运行时实体对象,因此我必须为每个类创建抽象工厂.最后,我将构造指令连接到IOC容器中.
有没有其他方法可以做到这一点.我只觉得创建所有这些工厂是浪费时间,特别是当所有子类都依赖于同一个实体对象时.
我倾向于使用IOC容器为我的方案注册一个工厂/构建器类.该工厂将为我的场景创建所需的对象图.我认为IOC是帮助实现DI概念的工具.只要我通过自定义构建器/工厂观察DI,就不会一直使用IOC容器.
我想知道你们对这种方法的看法是什么?
听起来你正遭受过多的1:1接口的困扰.当发生这种情况时,通常表明人们应该停下来思考
Reused Abstractions Principle.
也许您可以重新设计界面,以便有less factories and more commands.