如C/S,为实现IOC,即S依赖于C,可通过C依赖于接口(在C中定义),S实现接口完成。
但运行时,C必须实例化对象。此时,只有接口信息不够。
因此,可通过DI来实现对象引用的赋值。在外部创建对象(实现接口),再调用C的公开函数(形参为接口),传入对象。
对象的创建是另外一个课题。
简单的方式,可使用工厂模式并利用反射来创建对象。
1.接口定义
2.S创建对象实现接口
3.C只通过接口调用S功能
4. 增加工厂, 使用反射创建对象
5. 将对象注入C
这样,就反转了