与系统中对象之间的操作/交互的数量有关的复杂性是什么?随着这个数字的增加,程序员理解和维护系统的能力降低了。
发布于 2016-10-04 14:52:07
高耦合可能是最近的术语。人们可能会争辩说,拥有许多系统并不一定意味着高度耦合。希望系统具有清晰定义的接口和独立的关注点。但OP指出,所有这些系统都可以与其他系统交互。在精简的系统中,每个组件不应该能够与每个其他组件交互,以解决复杂性问题。这就是为什么,例如,网络被放置在一个堆栈中,其中每个层只能与它上面和下面的层通信。
如果系统中有n个组件,则组件之间存在n^2相互作用,2^n个不同的子系统。这是一个复杂的组合爆炸,任何开发人员都无法管理它,即使是适度的n。
发布于 2016-10-04 15:41:04
它是对象抽象,但通常被称为抽象。原则是,大多数人只能在短期内存中理解7 +/-2给定的对象;因此,通过系统的抽象层应该努力保持在这个级别内。
园丁提出的高耦合或组内连接是软件系统中存在的另一种形式的复杂性,但通常情况下,组内链接的水平是指更倾向于继承而不是对象组合。
但是无论如何,软件系统中的四种主要的复杂性(抽象、封装、模块化、层次性)是相互关联的。所以通常,模块化(耦合)的分解是一般抽象的分解。具体来说,无论何时您减少模块化,您几乎总是同时减少封装。
https://softwareengineering.stackexchange.com/questions/332711
复制相似问题