.net - 多层/多层系统等于紧耦合系统吗?

标签 .net architecture domain-driven-design web-services loose-coupling

我发现每当我创建一个/多个层时,我都必须在一层到另一层之间进行转换,这是否意味着它是一个紧密耦合的系统?如果我要更改业务逻辑,删除数据库中的字段等,我是否必须更改从数据库层到客户端前端的所有层?

例如一个Web服务,暴露一个“数据契约”对象,并在中间层将其转换为一些“业务对象”,然后在数据层将其转换为适当的“ORM对象”。客户端调用Web服务,将数据契约转换为一些模型对象等......

既然中间有这么多翻译,那么Web服务如何设计成松耦合呢?只是我的想法,如果有人可以分享他/她的意见那就太好了。

谢谢

最佳答案

翻译或映射与松散耦合是正交的,尽管有些相关。

  • 如果从具体类型映射到具体类型,则映射是紧密耦合的
  • 如果从抽象类型映射到具体类型或相反,则映射是松散耦合的

换句话说,松散耦合与接口(interface)编程的概念相关,而不是与映射相关。

如果应用程序中的各层通过具体类型相互通信,则它是紧密耦合的。在这种情况下,分层并不能提供太多值(value),您还不如构建一个整体应用程序。

另一方面,如果一个层通过接口(interface)与其他层通信,这些层将是松散耦合的,但通常仍然需要映射。

关于.net - 多层/多层系统等于紧耦合系统吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2027429/

相关文章:

c# - 在 C# 中使用访问器的优点和缺点是什么

.net - 具有 MVVM 模式的 Wpf Prism 应用程序架构

variables - CPU 如何在 32 位内存和 32 位处理器中访问单个字节的内存

domain-driven-design - 持久性和暂时性对象-对术语感到困惑

domain-driven-design - 在 DDD/分层架构中存储常量的位置

.net - WPF 是 Windows 应用程序的选择吗?

c# - Microsoft Charts for .Net 4,饼图外观

c++ - 如何防止客户端修改列表对象

domain-driven-design - DDD - 实体应该创建实体吗?

c# - 如何处理IIS回收