问题标签 [loose-coupling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
228 浏览

web-services - 自我描述/自动描述服务在 SOA 架构中是松耦合还是紧耦合?

我认为自我描述/自动描述服务在 SOA 架构中是一件好事,因为(几乎)您知道调用该服务的所有内容都存在于服务契约(例如 WSDL)中。

对我来说,非自我描述服务的示例是 Facebook 查询语言(FQL http://wiki.developers.facebook.com/index.php/FQL),或任何在一个字符串参数中交换 XML 流以进行解析的 Web 服务XML 和执行处理。

最后一个似乎在技术上更加分离,因为从技术上讲,您可以在不对调用者产生技术影响的情况下切换实现,在业务级别处理实现/版本之间的兼容性。另一方面,没有强接口(稀释到服务及其版本中),使服务与现有实现紧密耦合(更难以互换服务并确保完美兼容)。

这个问题与如何使用 SOA 架构实现松散耦合有关

那么,SOA 架构中的自我描述/自动描述服务是松散耦合还是紧密耦合?对 ESB 有什么影响?

任何指针将不胜感激。

0 投票
2 回答
623 浏览

asp.net - ASP.Net MVC - 什么替换事件以支持松散耦合?

ASP.Net MVC 的哪些功能可以替代 Web 表单中使用事件的方式来支持松散耦合的组件?

例如,在 Webforms 中使用一个简单的分页器控件:

  1. 点击页码
  2. Pager 使用新的页码触发“PageChange”事件
  3. 此订阅页面/控件接收到事件并处理启动调用以获取和绑定新数据。

ASP.Net MVC 中有哪些工具可以类似地支持

  • 松耦合
  • 组件可重用性
  • 单个页面/视图的逻辑分离(这样一个非常复杂的“门户”类型页面)。
0 投票
1 回答
264 浏览

asp.net - ASP.Net 分层通信

我们正在开发一个分层的 Web 应用程序。规格:

  • 3层,数据层,业务层,UI层。
  • 用 C# 编程
  • 数据层使用实体框架

目前我们计划让数据层IEnumerable<T>通过linq 2实体返回业务层,业务层将数据返回到ui层。

由于 ui 层不知道数据层的存在,它如何处理从 BLL 传递给它的 IEnumerable 结果,其中 T 在数据层中定义?

有没有关于如何做到这一点的好例子。请注意,我对松散耦合层的工厂/接口/抽象非常陌生。

我在这里看到了在 ntier 应用程序中传递数据的问题,建议在所有层之间共享实体层......但是我不希望其他层能够查询数据库。

0 投票
13 回答
13783 浏览

asp.net - 为什么 Web 架构应该是松耦合的?

当我查看 ASP.NET MVC 项目时,我每次都会看到松散耦合架构。

为什么我需要在 Web 架构中进行松散耦合(如果我不进行单元测试)?

这有什么优点缺点

解耦层/类的主要原因是什么?

例如,如果我不想更改我的 DAL 怎么办?我的意思是我什么时候应该改变我的整个 DAL?!所以我可以将我的 DAL 耦合到 UI。这有什么不好?

0 投票
2 回答
540 浏览

c# - 如何在 C# 和 java 中实现这种可插拔机制?

假设我有三个对象 A、B、C。B
是以下接口的实现:

我将在 B 中添加两个函数,这将引发界面中的事件。

A 是宿主类,将调用 B 的函数来引发指定的事件。我希望在 CI 中可以监听接口 B 或类 C,每当 B 中的事件被引发时,C 可以得到通知,然后 C 可以对事件做出反应。

我正在考虑如何在 C# 和 Java 中实现这种机制。
任何帮助或提示将不胜感激!

0 投票
1 回答
411 浏览

django - 应用程序中的 Django 松耦合

我正在尝试编写一个可用于多个项目的应用程序。我遇到了一个问题,当我import some_project_name.models 在我的应用程序中进行导入时,我总是要指定项目的名称,我该如何克服这种耦合,以便我可以在多个项目中使用该应用程序?

0 投票
9 回答
5455 浏览

strong-typing - 为什么紧耦合不好但强类型好?

我很难看到松散耦合代码在现实世界中的好处。为什么要花这么多精力让一些东西灵活地与各种其他对象一起工作?如果你知道你需要实现什么,为什么不专门为此目的编写代码呢?

对我来说,这类似于创建无类型变量:它使其非常灵活,但可能会遇到问题,因为可能传入了一个意外的值。这也使得它更难阅读,因为你不明确知道传入的是什么.

然而,我觉得鼓励强类型化,但松散耦合是不好的。

编辑:我觉得要么我对松散耦合的解释不正确,要么其他人读错了。对我来说,强耦合是当一个类引用另一个类的具体实例时。松耦合是指一个类引用另一个类可以实现的接口。

那么我的问题是为什么不专门调用一个类的具体实例/定义?我将其类比为专门定义您需要的变量类型。我一直在阅读有关 Dependency Injection 的文章,他们似乎认为松耦合更好的设计是事实。

0 投票
4 回答
156 浏览

java - 帮助程序设计

我目前正在创建一个简单的基于控制台的游戏,其中玩家可以在不同的房间之间移动,拿起和使用物品,以及吃东西。在游戏的当前状态下,就是这样。

我需要帮助的是:

为我的游戏创建一个好的“事件”类。我希望它的工作方式是每个项目和房间都应该能够与一个事件相关联。

由于我是新手,因此我将不胜感激与此类程序相关的任何阅读材料,或关于如何最好地考虑以下几点来设置我的课程的建议,或者只是如何攻击这种程序的问题(即难以决定如何设置课程)

我希望能够创建不同类型的事件,例如:

  • 输出一些文字,然后问玩家一个问题。如果玩家给出了正确的答案,就做点什么。

  • 输出一些文本,然后从玩家的物品栏中移除一个物品,然后将玩家移动到另一个房间。

我试图避免的事情:

  • 整个游戏的重点是练习良好的类设计,因此诸如责任驱动设计、内聚和耦合等方面是重要的方面。因此,我希望它尽可能简单、可重用和独立。

  • 必须对每个事件进行硬编码,以便项目或房间只需调用 Event 类中的特定方法。

我此刻在想什么:

创建一些子类,以便我可以使用例如创建新事件(并将它们关联): itemObject.setEvent(new Event(new Question("introText", "outroText", "correctAnswer")));

如果需要更多信息,请告诉我!谢谢!

0 投票
1 回答
1310 浏览

loose-coupling - 松耦合示例

介绍代码:

在示例代码中,我试图描述两个单独的实体(接口/类/任何东西),它们一方面应该(我希望,至少)松散耦合,但另一方面确实相互依赖并需要一定的知识彼此的。

在上述情况下,我需要一个真正将它们组合成一个工作系统的第三类。它很难看,因为到目前为止,上面的定义是尽可能松耦合的——student.register(c) 只更改学生对象,而 course.register(s) 只更改课程对象。所以一个统一的类必须同时运行 s.register(c) 和 c.register(s)。

尽管如果我将所有 register() 逻辑重新登录到一个类,那么我将它们紧密耦合。

有没有更干净的设计方法?

0 投票
1 回答
581 浏览

architecture - 使用单独程序集中的接口和实现,Unity 应该在 Prism WPF 应用程序中将两者映射到哪里?

我目前正在使用带有 Unity 的 Prism 开发 WPF 应用程序。该模型的功能被分成几个类库项目。对于每一组关注点,我都有一个实现项目和一个仅由接口和枚举组成的项目。目标是能够修改或完全替换实现 dll,而不会影响或不必修改应用程序中的任何其他内容。在这种情况下,我对如何在顶级应用程序中不硬引用两者的情况下将接口注册到它们的实现有点卡住了。

我知道它们必须在某个地方一起引用,但是在引导程序的顶级应用程序中发生这种情况是否违反最佳实践?对于这个特定问题,我是否应该研究 MEF 而不是 Unity?