gpt4 book ai didi

oop - 什么是依赖注入(inject)的好比喻?

转载 作者:行者123 更新时间:2023-12-04 16:23:55 26 4
gpt4 key购买 nike

在对非 DI 系统进行编程时,一直困扰着我的一个比喻是“一个人在玩他/她的玩具”。人是对象,人的玩具是对象创建、存储、初始化和操作的任何东西。当玩具达到某种状态时,它们可以发送事件,但它们对使用它们的人一无所知;它们只是带有构成其接口(interface)的控制开关的小黑匣子。该人可以监听来自玩具的事件并通过操纵它们的界面做出响应。这个人可以用他/她的玩具做他/她想做的任何事情,但他/她可能不应该去干预他们的内脏,因为它们可能会破裂。

DI 对我的比喻造成的破坏是,它把玩具变成了有意识的存在,知道它们的主人,使用它们的人。玩具可以操纵这个人,但这个人不知道它们是如何工作的,甚至不在乎。该人只是拥有玩具并期望玩具操纵他/她以使玩具自己满意。

怎么回事??听起来很可怕!!
他们用来思考 DI 系统如何工作的一个好的心理隐喻是什么?

最佳答案

想想一个绅士和他的管家。管家(DI 框架)根据需要向绅士提供他需要的任何服务(外部依赖项)(还有一些,如早晨的咖啡,在“初始化”时 :-));绅士(你的类(class))只消费服务而不关心它们来自哪里,只要它们满足他的要求(实现某些接口(interface))。

或者如果你想让它更接近你的比喻,你的类(class)是 child ,DI 框架是妈妈,而玩具是其他组件。 child 不在乎玩具是从哪里来的,只要她能按照自己喜欢的方式玩就行。

关于oop - 什么是依赖注入(inject)的好比喻?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1548595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com