问题标签 [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 投票
4 回答
612 浏览

java - 是否有一个好的 Java 后端平台/库/框架可以保持后端和前端松散耦合?

从前端/UI 开发人员的角度来看,最近的 asp.net MVC 经验大大减少了我对 .NET 的厌恶。Java中是否有类似的东西,或者我只是模糊地理解为为了某种多任务处理性能而做CGI以外的事情总是需要与HTML紧密耦合的servlet/portlet业务?

如果没有,我需要阅读什么来帮助用 Java 编写一些东西来使这成为可能?一些流行的图书馆是罪魁祸首吗?

另外,如果这些神秘的 n-let 提高了性能,为什么这么多 Java 站点在我看来加载时间更慢?

0 投票
3 回答
348 浏览

python - 哪个是“更好”的做法?在 Python 中传递对象引用或对象方法引用

我正在用 Python 编写一小段代码,很好奇其他人对此有何看法。

我有几个类,每个类都有几个方法,并且试图确定什么是“更好”:通过方法调用传递对象,或者在只需要来自对象的一个​​方法时通过方法调用传递方法。基本上,我应该这样做:

或这个

在我看来,第二个可以说是“更好”,因为它促进了操作和其他类之间更松散的耦合/更强的凝聚力。对于对象只需要一个方法的情况,我很想看到一些支持和反对这种方法的论据。

编辑:我删除了 OOP 措辞,因为它显然令人不安。我主要指的是松散耦合和高内聚。

0 投票
1 回答
222 浏览

javascript - 如何松散地耦合页面上的 javascript 和模态/jQuery UI 对话框中的 javascript?

我有用户单击“添加人员”按钮的页面。这会弹出一个通过 ajax 加载并使用 jQuery UI 对话框显示的模式。弹出窗口包含一个搜索表单,用户可以在其中选择要添加的人员。当他们点击“确定”时,我希望页面上的 javascript 检索所选人员的 ID 并将其显示在显示模式的页面上。

这一切都很好,我可以让它工作,但它总是很丑陋,我最终在我的模态视图或我的页面视图中编写代码,这需要了解另一个 DOM。例如,模态可以知道在调用页面上有一个div#new-person,它可以把新人放在那里。但这需要模态框了解基本页面。

或者我可以将我的应用程序代码中的 javascript 函数传递给模态,但这需要模态知道该函数并显式调用它。jQuery UI 对话框提供了创建onclick在基本页面上指定的按钮的能力,但我的模式比这更复杂(我不希望在选择一个人之前显示这些按钮)所以我不能使用它们。

0 投票
1 回答
1033 浏览

session - Problem with IE8 session sharing?

Hello how do i handle session sharing in IE8 in java?? I have an application where multiple users can login. Before in IE7 we dint have this sort of problem. But since its loosely coupled in IE8, how do we avoid this in java?

0 投票
1 回答
1340 浏览

asp.net-mvc - How to properly decouple Structure Map dependency resolver from ASP.NET MVC web project?

While developing web project using ASP.NET MVC, I came up against a coupling problem. When I build custom controller factory (or dependency resolver if using MVC 3), I need this factory to know somehow where to get dependencies from. Here's my code:

StructureMapControllerFactory class is responsible for injecting dependencies into a controller. As I said, it needs to know where to find these dependencies (I mean concrete classes, like services and repositories implementations).

I have a separate class library called MySite.Data, where all the implementation details live. Contracts, like IAccountRepository, live in library MySite.Contracts. Now, if I reference this MySite.Data library directly from MVC project, there will be a dependency between my site and implementation of its data retrieval. The question is how can I remove it? What are best practices in this situation?

I'm sure it does have a bunch of workarounds, just I haven't found any yet.

0 投票
4 回答
419 浏览

.net - 接口困境的位置

给定一个代码项目,它应该通过实现松散耦合的层、具有 IoC 容器等来遵守 SoC 原则,例如,一个简单的 ASP.NET MVC 解决方案,它分为以下程序集:

  • 应用程序集+命名空间
  • 模型组件+命名空间(包含访问数据库数据的具体存储库)

以及模型程序集中的具体存储库必须在哪里实现一个通用接口IMyBusinessRepository,你会将那个接口放在哪个程序集中?

1) 如果您将该接口放入模型程序集中,那么如果不修改应用程序程序集的代码,就不可能用另一个程序集替换该程序集(至少如果它具有不同的命名空间)。此外,驻留在不同程序集中的替代 IMyBusinessRepository实现必须引用原始程序集(Argh!)

2)如果你把它放在Application程序集中,如果不引用Application程序集,就不可能在其他项目中使用Model程序集(Argh!)

3) 或者您会为该接口创建一个单独的通用程序集,并且就此而言,为每个通用接口或一组接口创建一个单独的通用程序集?(啊?)

总而言之,X组件应该可以在应用程序A中轻松替换(仅通过更改引用),并且可以在应用程序BCD中重用。

0 投票
1 回答
49 浏览

ruby - 在事件之后调用附加操作

我想知道这个问题是否存在模式:

我有一个用于 CRUD'ing ftp 用户的 ruby​​ 网络前端。webfrontend 的后端是 MySQL 数据库。webfrontend 与守护进程严格分开,它是 auth-backend(带有 sql-mysql 或 mod_auth_file 的proftpd)。

通过 webgui 创建用户后,我想调用到守护程序后端的桥。

编码这个桥不是问题,我不知道如何在没有强耦合的情况下将所有东西放在一起(由于切换 proftpd auth 后端)。

谢谢你。

0 投票
2 回答
334 浏览

c# - 松耦合设计中的常见定义

我正在尝试组合一个非常精细的松散耦合设计。

但我无法决定如何处理常见定义。

现在我通过将其添加为外部 dll 来分离关注点。通过注入和接口,我的域可以在不知道实现的情况下使用我的业务逻辑。

我遇到的问题是,要使我的所有组件松散耦合,它们需要实现相同的接口。我的解决方案是一个单独的项目(dll),只有所有的定义。这开始很好,但似乎变得臃肿并将所有代码链接到这个 dll 依赖项上。

最务实的做法是什么?

谢谢!

0 投票
2 回答
373 浏览

asp.net-mvc - 如何将控制器与 Http 上下文会话解耦

我需要在我的操作中的会话中存储一些数据但是我担心将我的控制器耦合到 http 上下文会话,我考虑过创建一个服务,但这真的值得吗?

0 投票
3 回答
590 浏览

domain-driven-design - 域模型应该耦合到什么程度?所有聚合根都应该是接口吗?

我们终于建立了一个领域模型。域模型包括用于将域对象松散耦合到持久性的接口。然而,我想知道域模型对象应该如何相互耦合。

Order指向Customer还是ICustomer ?

这篇文章提到了积极解耦对象的问题,并且似乎不鼓励“过度使用 [接口]”。但是,除非我可以模拟它们所依赖的其他实体,否则我看不到如何真正对我的域实体进行单元测试,这需要松散耦合。

我也不确定想要一个可以交换部分的域模型有多现实。