可组合性和可分解性之间的差异

时间:2015-07-05 10:02:18

标签: java oop design-patterns design-principles

我一直在网上寻找关于两者之间差异的简单解释。 我理解作文是"自下而上"设计,而分解是自上而下"设计。 但是,除此之外 - 还有什么进一步的区别吗? 如果一个程序实现了"可组合性"原则,它是否也必然实现"可分解性"原则,反之亦然?

很明显,这两者可以如何导致不同的设计,但总而言之,从不同的角度看它们似乎完全相同。

澄清将受到高度赞赏。 干杯!

一些参考链接:

1 个答案:

答案 0 :(得分:0)

正如您提供的第一个链接所示,这两种方法并不相容。您只需要知道何时使用其中一个。

根据我的经验,当您开始设计时,自上而下的设计是一种很好的方法,因为您需要发现您的系统,了解需求并使某些东西快速起作用。随着您添加越来越多的功能,特定的职责开始出现,这就是需要分解您的问题的地方。这样可以防止将代码从一个功能复制到另一个功能,并减少编写新功能所需的工作量。

在一种方法或另一种方法之间进行选择只需要确定在适当的时间采取正确的设计决策。如果您觉得问题的某些方面仍然不清楚,则没有理由将其分解。等到你的模块急需模块化(例如,很难理解你几天前所写的内容将是一个好兆头,对于重复的代码也是如此)。

这是回答你的问题吗?