运行打印的结果为什么会打印"DoubleElevenShippingCalculator 被创建了"呢?
来源:6-8 【操作】反转控制与依赖注入
rickey_gong
2022-09-08
课程6-8,11:15分运行打印的结果为什么会打印" DoubleElevenShippingCalculator 被创建了"呢?代码里明明只调用了容器中的 " IOrderProcessor ",应该只打印 " OrderProcessor 被创建了 "才对啊(我期望的)。
写回答
1回答
-
这就是ioc反转控制容器的强大之处。所有放入ioc的类的生命周期都由ioc自动控制,因为订单类依赖于价格计算类,所以当我们在使用订单类的时候,ioc会自动识别它的依赖关系,一旦发现订单依赖于价格类,那么ioc就会先创建价格类,然后才创建订单类。所以你会看到console中的打印顺序是先创建价格然后才创建订单。ioc最大的用处就是解耦,工作中每天都会接触,不管学java还是c#都是必须掌握的核心知识点。212022-09-09
相似问题