首先,你在进行苹果和橙子的比较,所以让我从两个角度来解释。类型指的是对值/变量执行操作的方式,以及它们是否被允许。耦合性与内聚性相反,指的是一个或多个软件组件的架构。这两者没有直接的关系。
强类型与弱类型
强类型的语言通常是一件好事,因为行为是明确定义的。例如,从维基百科上可以看到以下两个例子:
弱类型:
a = 2
b = '2'
concatenate(a, b)
add(a, b)
以上内容可能有些令人困惑并且定义不太清晰,因为一些语言可能使用ASCII(可能是十六进制、八进制等)数字值来进行加法或连接,因此容易出现错误。此外,很难确定a
最初是整数
还是字符串
(这可能很重要,但语言并不在意)。
强类型语言:
a = 2
b = '2'
concatenate(str(a), b)
add(a, int(b))
如您所见,这里的一切都更加明确,您知道变量是什么,以及何时更改任何变量的类型。
维基百科表示:
弱类型的优点在于相对程序员而言需要更少的工作,因为编译器或解释器会隐式地执行某些转换。然而,一个缺点是弱类型编程系统在编译时捕获的错误较少,其中一些可能在测试完成后仍然存在。两个常用语言支持许多种隐式转换的语言是C和C ++,有时声称这些是弱类型语言。然而,其他人认为这些语言对不同类型的操作数可以混合使用的限制足够,应将其视为强类型语言。
强类型与弱类型都有其优点和缺点,没有好或坏之分。了解差异和相似之处非常重要。
松散耦合与紧密耦合
直接来自维基百科:
在计算机科学中,耦合或依赖性是每个程序模块依赖于其他每个模块的程度。
通常将耦合与内聚性进行对比。低耦合通常与高内聚性相关,反之亦然。 耦合和内聚性的软件质量指标是由Larry Constantine发明的,他是结构化设计的原始开发人员之一,也是这些概念的早期支持者之一(另请参见SSADM)。低耦合通常是良好结构化计算机系统和良好设计的标志,并且当与高内聚性结合使用时,支持高可读性和可维护性的一般目标。
简而言之,低耦合是非常紧密、可读性强且易于维护的代码的标志。在处理大型API或大型项目,其中不同的部分相互作用以形成整体时,高耦合是首选。没有好或坏之分。有些项目应该紧密耦合,即嵌入式操作系统。其他项目应该松散耦合,即网站CMS。
希望我在这里提供了一些信息 :)