我发现每当我创建一个/多个层时,我都必须在一层到另一层之间进行转换,这是否意味着它是一个紧密耦合的系统?如果我要更改业务逻辑,删除数据库中的字段等,我是否必须更改从数据库层到客户端前端的所有层?
例如一个Web服务,暴露一个“数据契约”对象,并在中间层将其转换为一些“业务对象”,然后在数据层将其转换为适当的“ORM对象”。客户端调用Web服务,将数据契约转换为一些模型对象等......
既然中间有这么多翻译,那么Web服务如何设计成松耦合呢?只是我的想法,如果有人可以分享他/她的意见那就太好了。
谢谢
最佳答案
翻译或映射与松散耦合是正交的,尽管有些相关。
- 如果从具体类型映射到具体类型,则映射是紧密耦合的
- 如果从抽象类型映射到具体类型或相反,则映射是松散耦合的
换句话说,松散耦合与接口(interface)编程的概念相关,而不是与映射相关。
如果应用程序中的各层通过具体类型相互通信,则它是紧密耦合的。在这种情况下,分层并不能提供太多值(value),您还不如构建一个整体应用程序。
另一方面,如果一个层通过接口(interface)与其他层通信,这些层将是松散耦合的,但通常仍然需要映射。
关于.net - 多层/多层系统等于紧耦合系统吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2027429/