gpt4 book ai didi

c# - 在哪里放置解决方案的通用接口(interface)以增加解耦?

转载 作者:行者123 更新时间:2023-11-30 22:33:08 26 4
gpt4 key购买 nike

我有一个具有 MVC3 网络前端的解决方案。我有一个单独的 View 模型程序集。我有一个包含所有域对象和业务功能以及业务验证的服务程序集。我的服务还为我的网站提供所有 View 模型。因此该网站知道服务和模型程序集。该服务只知道模型程序集,而模型程序集不知道任何一个。

所以我有一个案例,我需要服务来验证和处理购物车模型。购物车中的项目实现了一个接口(interface),我想在服务程序集中定义该接口(interface)。我的问题是,为了让我的购物车模型使用此接口(interface),它需要了解服务程序集。如果我在我的模型程序集中定义接口(interface),我现在已经以我不希望的方式将这两个程序集耦合在一起。

所以我决定我可以通过添加另一个包含接口(interface)的程序集来分离它们,并且每个程序集都会引用它。所以,现在它们都紧密耦合到这个组件,但它们彼此之间也没有直接耦合。

这个“仅接口(interface)”程序集是一个可行的解决方案还是我应该以不同的方式做事?

最佳答案

您可以将购物车的界面放在模型程序集中(服务程序集也可以在其中看到它),或者您可以将它放在第 4 个“仅界面”程序集中。如果您选择后者,您可能需要考虑让您的 MVC 项目和服务项目仅引用新程序集,因为这会带来额外的好处,即减少与模型程序集中模型实现的耦合。

编辑:我应该提到,删除对模型程序集的依赖并仅引用仅接口(interface)程序集将需要使用 IoC 容器或类似的东西来加载具体实现(在模型程序集中定义)

关于c# - 在哪里放置解决方案的通用接口(interface)以增加解耦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8450666/

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