问题标签 [tightly-coupled-code]
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.
unit-testing - Nsubstitute 拦截硬依赖
我正在对遗留代码进行单元测试,并且正在处理一个实例化另一个类的类。我相信这可以使用 Microsoft Fakes 进行测试,但我想知道 NSubstitute 是否有能力。我相信答案是否定的,但需要确定。
php - 使用工厂模式和紧耦合
我正在考虑使用工厂模式来创建不同的对象。但是如果通过工厂模式在另一个类中创建对象是否紧密耦合,我有点困惑。例如:
因此,在 DrivingApplication 类中,我使用 CarFactory 创建了一个汽车类。我的问题是:
- 它仍然假设紧密耦合吗?
- 我应该在 DrivingApplication 类之外创建汽车对象并使用依赖注入来解决紧密耦合吗?
- 如果我只能在 DrivingApplication 类中确定要创建的汽车类型怎么办?
oop - 什么时候紧耦合是必要的还是一件好事?
从我对 OO 设计/模式/原则的所有阅读和研究中,我发现普遍的共识是松散耦合(和高内聚)几乎总是更好的设计。从我过去的软件项目经验来看,我完全同意。
但是,假设某个特定的软件公司(我不工作)有一些设计有问题的与某些硬件交互的大型软件。模块(我从未参与过)是如此紧密地耦合,并且函数调用深入到 20 多个级别来管理状态。类边界从来没有明确定义,用例也没有考虑过。一个好的软件开发人员(不是我)会提出这些问题,但只会被更高级的开发人员拒绝,因为开发实践(如 SOLID 或 TDD)并不真正适用,因为该软件多年来一直使用“传统”方法,而改变为时已晚。客户(我不知道他们是谁)最大的抱怨是产品的质量。
由于上述不切实际的场景(我从来没有分开过),我考虑过是否存在首选甚至需要紧密耦合的情况?什么情况下开发人员需要跨越模块边界并共享状态并增加依赖性并降低可测试性?有哪些系统如此复杂以至于需要这样做的例子?我自己想不出一个好的案例,所以我希望一些更有经验的工匠能帮助我。
谢谢。再说一次,我不知道这家公司。
oop - 与组合相关的松散耦合
在搜索了与紧密耦合相关的不同论坛之后(当一组类相互高度依赖时)示例1
上面的类 CustomerRepository 依赖于 Database 类,所以它们是紧密耦合的。我认为这个类也是 Compostion 的一个例子,然后我搜索了松散耦合,所以改变了上面的类,从而消除了紧密耦合依赖。示例 2
我已经搜索了组合支持松耦合现在我的问题是 example1 是如何紧密耦合的,因为它是基于组合的?其次,松散耦合和组合之间的关系是什么?
任何帮助将不胜感激。
java - ls 松耦合可以通过任何其他方式来实现,而不是使用父类引用变量,一般不是专门在我的代码中?
紧耦合是指一组类相互高度依赖。
在我的代码中,我通过引用类 B 而不是父接口 A 来接受类的对象。
我的代码是松耦合还是紧耦合?
松散耦合是通过促进单一职责和关注点分离的设计实现的。
使用父类或接口的引用使代码更灵活地采用任何子类的对象,但它如何促进单一职责。
是否可以通过任何其他方式而不是使用父类引用变量来实现松散耦合,在任何情况下都不是专门在我的代码中?
class - 循环依赖是代码气味吗?(语言不可知论者)
例如,假设我正在制作一个瓦片地图编辑器。
我们有编辑器,它处理瓦片的绘制,我们有用于确定绘制哪些瓦片的瓦片集。
编辑器需要依赖tileset来知道应该绘制哪些tile,tileset需要依赖editor来知道要绘制的tile的尺寸,以及其他小细节。
这会创建紧密耦合的代码。这是代码味道吗?如果是这样,我该如何解决?
我把所有东西都塞进一个大班里吗?我是否使用调解器在两个类之间进行通信?
java - 为什么紧密耦合的代码很难进行单元测试?
我听说紧密耦合的代码很难进行单元测试。我不明白怎么办?有人可以举例说明。
spring-mvc - 如何使数据与应用程序代码松耦合?
我从从事它的开发人员那里继承了一个项目代码库。我必须对其进行一些更改。
假设我有一个包含 2 列的表“CARS”
身份证 | 车名
1 | 现代
2 | 福特
3 | 宝马
绑定到模型类“汽车”:
在我的代码片段中(比如在某些控制器类中)我必须查看给定的汽车是否是福特汽车,条件代码类似于
if(thisCar.getCarName()=="FORD")
或者
if(thisCar.getId()==2L)
但这会在数据库和应用程序之间产生一些依赖性问题。如果我刷新汽车表或重组它,结果福特汽车条目进入主键 3,字符串“福特”也是如此。如果明天它变成“FORDspeed”或其他东西怎么办。我将不得不相应地更改我的代码。
在这个意义上,我如何使我的代码与数据松散耦合。
c# - OOP 紧耦合。我应该什么时候做?
我已经实现了两项服务。一个从 Country API 提取数据,另一个从 County API 提取数据。
我喜欢保持我的控制器干净,所以我很好奇将我的服务组合在一起而不是将它们分开是否是一个好主意。
我不确定什么是紧密耦合以及何时合适。
我应该走这条路: