在我的工作中,工厂模式是一个很大的讨论。
主要讨论点是,正在创建对象的工厂中的一个人是否也可以通过其他工厂分支出对其子类进行填充的调用。
或者父工厂需要这些详细信息作为其构造函数的一部分,并与其他数据一起作为参数?
可以在工厂内呼叫其他工厂吗?还是应该使工厂自给自足/自给自足并完全独立?
对我来说,这不是一个[[是或否问题,所以来了。
我认为可以在工厂内部呼叫工厂,但是,如果不考虑可能导致的缺点,就无法做到这一点。工厂链越深,依赖性就越复杂。另外,它可能会影响可维护性和可测试性。为了避免具体的依赖关系,您可能希望应用SOLID原理将其解耦。它会带您进入一个完全灵活且可注射的工厂系列。但是,如果没有DI容器,可能会很痛苦,而有了DI容器,也应该考虑性能。
因此,简短的答案是
是
,但是您需要在灵活性,可维护性,可测试性和性能之间找到平衡。 拇指法则:如果确实需要它们,请创建结构,而无需过度设计。