在面向对象范式中,有人能准确地描述松耦合和紧耦合之间的区别吗?
当前回答
我的理解是,与松散耦合的体系结构相比,紧密耦合的体系结构并没有为更改提供很多灵活性。
但是对于松散耦合的体系结构,消息格式或操作平台或修改业务逻辑不会影响另一端。如果系统因改造而关闭,当然另一端在一段时间内不能访问服务,但除此之外,未更改的一端可以恢复消息交换,就像改造之前一样。
其他回答
当两个对象松散耦合时,它们可以相互作用,但知之甚少 对方。
松散耦合设计允许我们构建能够处理变更的灵活的OO系统。
观察者设计模式是一个让类松散耦合的好例子,你可以在维基百科上看到它。
松耦合是在不提供依赖关系的所有信息的情况下,间接地给出类所需要的依赖关系的过程。E在from的接口中),以防紧耦合,你直接给出依赖关系,这不是编码的好方法。
有一些工具通过它们的库提供依赖注入,例如在。net中我们有ninject库。
如果在java中更进一步,那么spring提供了这种功能。
松散耦合的对象可以通过在代码中引入接口来实现,这就是这些源代码所做的。
在你正在编写的代码中
Myclass m = new Myclass();
现在你的方法中的这个语句说你依赖于myclass这被称为紧耦合。现在你提供了一些构造函数注入,或者属性注入实例化对象,然后它就会变得松散耦合。
一般来说,紧密耦合是不好的,但大多数时候,因为它降低了代码的灵活性和可重用性,它使更改更加困难,它阻碍了可测试性等。
Tightly Coupled Object is an object need to know quite a bit about each other and are usually highly dependent on each other interfaces. Changing one object in a tightly coupled application often requires changes to a number of other objects, In small application we can easily identify the changes and there is less chance to miss anything. But in large applications these inter-dependencies are not always known by every programmer or chance is there to miss changes. But each set of loosely coupled objects are not dependent on others.
简而言之,我们可以说,松耦合是一种设计目标,它寻求减少系统组件之间的相互依赖关系,目的是降低一个组件的更改将要求任何其他组件进行更改的风险。松散耦合是一个更通用的概念,旨在增加系统的灵活性,使其更可维护,并使整个框架更“稳定”。
耦合指的是一个元素对另一个元素的直接认识程度。我们可以说A和B,只有B在A改变其行为时才改变其行为。松散耦合的系统可以很容易地分解为可定义的元素。
我的理解是,与松散耦合的体系结构相比,紧密耦合的体系结构并没有为更改提供很多灵活性。
但是对于松散耦合的体系结构,消息格式或操作平台或修改业务逻辑不会影响另一端。如果系统因改造而关闭,当然另一端在一段时间内不能访问服务,但除此之外,未更改的一端可以恢复消息交换,就像改造之前一样。
推荐文章
- 构造函数vs工厂方法
- 在PHP5中创建单例设计模式
- 如何正确地设置和拆除带有测试的pytest类?
- 什么是依赖倒置原则?为什么它很重要?
- 访问对象内存地址
- 为什么在Python方法中需要显式地有“self”参数?
- 如何在方法中访问“静态”类变量?
- 使arrayList.toArray()返回更具体的类型
- 如何从对象数组中通过对象属性找到条目?
- 为什么c#不提供c++风格的'friend'关键字?
- new Object()和对象文字表示法的区别是什么?
- String, StringBuffer和StringBuilder
- JavaScript对象如何引用自身的值?
- 在c#中创建一个对象的副本
- PHP检查对象或类中是否存在属性