创建逻辑可能变化,封装成工厂类后,创建逻辑的变更对调用者透明。
创建代码抽离到独立的工厂类之后可以复用。
封装复杂的创建逻辑,调用者无需了解如何创建对象。
将创建代码抽离出来,让原本的函数或者类职责更单一,代码更简洁。
最基本的设计模式就是基于工厂模式。
一个工厂类只负责某一类对象或者某一组对象(继承同一抽象类或者同一接口类)的创建,而DI容器负责的是整个应用中所有类对象的创建。
涉及工厂模式,利用反射创建对象,利用递归解决依赖问题。
如何解决循环依赖问题
构造器方式,无法解决,就抛出异常。