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

.net - ORM - 特定于用于 .NET 的 SQL Server 2008+

是否有MS SQL 2008+ 相关联的 ORM,生成 .NET 代码,利用 MS SQL 特定功能?

我对 2 个功能特别感兴趣:

(1) 通过键获取一组记录,不会映射到“select in”查询。
- 这可以通过在 2005+ 中使用或在 2008+ 中OPENXML使用表值参数来实现

(2) 通过单个请求向数据库插入多个记录(这与 Bulk-Insert 相似,但不同)。例如:

所以在客户端准备好SQL相关代码,然后全部发送到SQL服务器。

顺便说一句,存储过程是不可能的。

如果您 stackoverflowers 对我有任何建议,我会很高兴。

谢谢!

更新:

我正在寻找一个完整的解决方案,而不是我可以根据自己的需要定制的可扩展框架/产品。所以自定义NHibernate/linq2sql/etc。通过编写我自己的代码实现不适合我的需要。


关于接受的答案的几句话。

似乎目前所有的 ORM 框架都试图涵盖多个数据库/技术。所以我想没有现成的解决方案可以满足我的需求,至少没有开箱即用的解决方案。

我了解指向 Fluent NHibrenate 的 @Ryk 认为这种解决方案确实存在,这是配置问题。我查看了 NHibernate 和 Fluent NHibernate 的源代码,但没有发现任何支持我正在寻找的功能的东西。OPENXML例如,我sp_xml_preparedocument在两个源代码中都找不到关键字。所以也许我错过了一些东西,但我不这么认为。由于赏金是有时间限制的,我无法对 FN 或 NH 进行更深入的调查。我仍然认为那里不支持这些功能。

因此,根据我的最佳理解,公认的答案是,没有这样的事情。声称最通用的答案是@Cade Roux 的答案。

我感谢大家的参与。干杯!

0 投票
1 回答
1241 浏览

c++ - 低耦合和紧内聚

当然,这取决于情况。但是当较低级别的对象或系统与较高级别的系统通信时,是否应该首选回调或事件而不是保持指向较高级别对象的指针?

例如,如果我们正在开发一款游戏,我们有一个world class具有成员变量的vector<monster> monsters。当monster class要与 通信时world class,我应该更喜欢使用回调函数还是应该在怪物类中拥有指向世界类的指针?

0 投票
2 回答
19664 浏览

java - Java 1.4:将原始类型转换为对象(耦合与性能?)

这实际上与我之前提出的一个问题有关,但我一直在关注这个细节。我仅限于 Java 1.4,我想将int类型转换为Object. 我真的需要使用Integer类对象还是有办法直接转换它(1.4 中没有自动装箱)。这种“手动装箱”的成本是否值得将整个类从第 3 层导入到第 1 层,从而增加耦合?

0 投票
2 回答
4650 浏览

java - 当一个类只调用另一个有很多方法的类上的一个方法时,如何减少耦合?

我有一个类(我们称之为MyService),它在它的构造函数中接受两个依赖项。第一个与问题无关。第二个是PaymentDetails。PaymentDetails 比 MyService 存在的时间更长,MyService 由工厂创建以处理此特定请求。

MyService.process()中,它:

  • 对第一个依赖项做一些事情,
  • 构造一个new TransactionDetails()对象并在其上设置各种东西,
  • 来电myPaymentDetails.setTransactionDetails( td );
  • 返回一些内容来说明向导中的下一个页面

PaymentDetails必然有很多方法。它是一个实体样式的对象,当用户逐步浏览一系列大约 5 个页面时,就会在其中构建信息。

困扰我的是,正如我所写的那样,我的服务类依赖于整个PaymentDetails但只调用一个方法。

这让我很困扰,因为:

  • 它将限制重用服务类的能力
  • 通过阅读方法签名无法理解真正的依赖关系是什么

我的问题是:

解决此问题的最佳方法是什么,以便我的服务类具有最小的依赖性?

0 投票
2 回答
505 浏览

c++ - 耦合 - C++ Web 或 GUI 桌面应用程序

如何处理高级 C++ 应用程序中的耦合?


我们可以将完成的代码用于 Web 应用程序,用 Witty 编写(例如),并用它制作控制台应用程序吗?...或将其更改为使用 Qt 制作的 GUI 的桌面应用程序?

是/否,为什么?

如何使它最可能和最容易?

0 投票
1 回答
244 浏览

design-patterns - 对象的耦合

假设我分别有 A、B 和 C 类的 doA()、doB() 和 doC() 方法。

除非我错了,否则 doA() 方法应该属于 A 类。它必须从 A 类执行。如果为 A 负责的方法 doA() 存在于 B 类中。那么 A 类与 B 的服务耦合. 这也代表低内聚和高耦合

我的推理正确吗?

0 投票
3 回答
610 浏览

design-patterns - 哪种设计支持低耦合?

设计#1

设计#2

哪种设计支持整体低耦合?为什么?

0 投票
1 回答
998 浏览

oop - 包稳定性指标,但针对特定类?

我想知道是否有一个类似于 Robert Martin 定义的 Package Stability Metric 的指标,可以通过它的 Instability (I) 指标来了解一个包何时应该或不应该依赖另一个包:

但是对于类,不是包内的类与其他包中的类之间的传入和传出耦合;它们在同一个包中的类之间的传入和传出耦合(可能和/或其他包,我真的不知道),通过它的“不稳定性”让人们知道一个类是否应该或不应该依赖于另一个类.

编辑:据推测,不稳定指标衡量改变的原因:不改变比率的原因,但现在我想一想,一个班级应该只有一个改变的理由,这意味着如果存在这样类似的不稳定指标,一个班级'我会为 0,但仍然有一些类确实“使用”其他类的对象实例,使它们依赖于这些类;但我不确定这一点,对此有何见解?

0 投票
3 回答
142 浏览

components - 可选组件功能与 SRP

我目前遇到了一个设计问题。

假设有一个组件层次结构。这些组件中的每一个都派生自一个Component看起来像这样的抽象类型:

现在我想为这些组件添加一些可选功能,让我们以能够在组件层次结构中搜索并在层次结构中选择组件为例。

像这样在基类中提供这些可选功能是否被认为是不好的做法:

而“搜索能力”和“选择能力”是通过例如使用策略模式在派生组件中管理的?

不知何故,这对我来说似乎违反了 SRP,但在我看来,唯一的选择是为每个可选功能提供一个接口,并且只在支持此功能的组件上实现它。

在我看来,这将有一个缺点,即每次我想检查组件是否提供特定功能时,我都必须编写这样的代码:

您会选择哪种策略,或者您有什么更好的想法?

提前致谢!

0 投票
1 回答
429 浏览

oop - 在坚持 DRY 的同时保持低耦合

“保持高内聚和低耦合”(或一些变体)的口头禅经常被抛来抛去。但是,我发现它经常与“不要重复自己”相冲突。

例如,我认为我们都同意重新实现std::string或使用 C 字符串是一件坏事,但不包括std::string创建另一个依赖项并因此增加耦合?

再举一个例子,以std::stringstream. 它继承自iostream,继承自istreamand ostream,继承自ios,继承自ios_base。在所有这些派生中,它继承了许多功能 - 足以使手动重新实现成为一个非常糟糕的主意。即使只包括在内,它也会拉动<ios>和头,从而增加耦合。<istream><sstream>

如何在不为每个模块重新发明轮子的情况下保持低耦合?

编辑:如果这两个概念不能共存,应该偏爱哪一个?