gpt4 book ai didi

dependency-injection - 依赖注入(inject) - 谁拥有接口(interface)?

转载 作者:行者123 更新时间:2023-12-03 17:21:16 24 4
gpt4 key购买 nike

假设我想在 AOP 方法中使用依赖注入(inject)框架,目标是生成代码模块。共享接口(interface)所有权的最佳实践是什么?所有权是指需要引用才能使用接口(interface)的代码主体。

我的第一个猜测是,在 AOP 中,您将定义一个接口(interface)类库,按方面命名空间。例如:company.aspect.logging.ILogger。然后每个模块将引用这个库,并避免在 ILogger 的实现中涉及的任何代码也定义 ILogger。

最佳实践?

最佳答案

定义接口(interface)类库是一个好的开始。这为您提供了最大的灵 active ,因为您可以完全独立地改变所有消费者和所有实现者。

这种方法的缺点是,如果您的接口(interface)本身导出其他接口(interface),如下所示:

public interface IMyInterface
{
IMyOtherInterface DoStuff();
}

您可能需要编写大量映射代码来从接口(interface)填充具体类(或者您可以使用 AutoMapper )。

如果你只有一个消费者但有几个 impelementers,你可以通过与消费者一起定义接口(interface)(从不与实现者一起)来为自己节省一些映射,但你会失去一些灵 active 。但是,您仍然可以独立于消费者来改变实现者,但不能反过来。

关于dependency-injection - 依赖注入(inject) - 谁拥有接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1731515/

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