假设我有一个包含许多相互依赖的函数的库,这个库太大了,我想把它分成几部分。有哪些算法可以找到适当的划分呢?
简单的例子,里面有四个函数:alpha,beta,gamma和delta。
- beta和gamma都调用了delta。 - module1调用alpha和beta。 - module2调用gamma。 - module3调用alpha,beta和gamma。
算法的输出可以是:
- LibA包含(alpha,beta) - LibB包含(gamma) - LibC包含(delta) - module1依赖于LibA - module2依赖于LibB - module3依赖于LibA和LibB - LibA依赖于LibC - LibB依赖于LibC
即它找到了最精细的Lib*划分,具有以下属性
对于所有X,如果LibX按任何方法划分为LibY和LibZ,则所有依赖于LibY的模块/库也依赖于LibZ,反之亦然。
是否有标准解决方案?
简单的例子,里面有四个函数:alpha,beta,gamma和delta。
- beta和gamma都调用了delta。 - module1调用alpha和beta。 - module2调用gamma。 - module3调用alpha,beta和gamma。
算法的输出可以是:
- LibA包含(alpha,beta) - LibB包含(gamma) - LibC包含(delta) - module1依赖于LibA - module2依赖于LibB - module3依赖于LibA和LibB - LibA依赖于LibC - LibB依赖于LibC
即它找到了最精细的Lib*划分,具有以下属性
对于所有X,如果LibX按任何方法划分为LibY和LibZ,则所有依赖于LibY的模块/库也依赖于LibZ,反之亦然。
是否有标准解决方案?