什么使耦合“松散”并且编写松散耦合的代码更好?

时间:2011-04-21 12:36:59

标签: c# design-patterns

  

可能重复:
  What is “loose coupling?” Please provide examples.

什么使耦合“松散”,并且编写松散耦合的代码更好?

**请给我一些链接。

4 个答案:

答案 0 :(得分:3)

这是一个非常广泛的话题,你应该开始关注GRASP patterns

2个类之间的松散耦合意味着每个类对其他类的内部行为知之甚少。你可能在属于同一个“模块”或“包”的类之间有更高程度的“耦合”,这并不是一个坏习惯:它使你的模型比你只有低耦合类更容易理解。

答案 1 :(得分:2)

松散耦合是一种由模块组成的体系结构。那些模块通过一些接口相互访问(公共方法没问题,但存在更多未解决的方法)。模块(通常)不需要彼此编译,并且很容易更改为具有相同接口的另一个模块。

答案 2 :(得分:1)

通过降低依赖性,您可以使耦合更松散..

松耦合是一种软件开发方法,它重视制作可互换的部件的重要性。如果两段代码松散耦合,那么对其中一个代码所做的更改对另一个代码的影响很小或没有影响。


以下是一些链接..

http://programmingexamples.wikidot.com/glossary:loose-coupling

http://www.artima.com/weblogs/viewpost.jsp?thread=6544

http://c2.com/cgi/wiki?CouplingAndCohesion

http://earthli.com/news/view_article.php?id=2507

http://www.codeproject.com/KB/cs/DynamicInvoking.aspx

答案 3 :(得分:1)

相关问题What is "loose coupling"中有几个例子。

关于你的代码是否应该松散耦合,这取决于它所实现的系统是什么。

例如,Web是松散耦合的 - 任何组件都通过相同的http接口,您可以在层中的任何位置从硬件到应用程序随时切换组件和服务提供者的实现。

另一方面,高性能显卡的驱动程序与其设计的硬件紧密耦合 - 其他任何东西,都会失去性能。虽然操作系统和驱动程序之间的接口耦合程度较低,但对于给定的操作系统版本而言,所有驱动程序都是通用的,而应用程序代码与操作系统之间的接口通常不再紧密耦合,可能符合长期存在的标准,如OpenGL的。

如果你的代码适合这些极端,那将决定适当的耦合程度。