“深度合成层次结构”也不难吗?
抱歉,“合成层次结构”不是问题,但我将在问题中解释我的意思。 没有任何OO程序员没有遇到过“保持继承层次结构平坦”或“优先考虑继承而不是继承”等变体。但是,深层次的组合层次结构似乎也存在问题。 假设我们需要一组详细说明实验结果的报告: class Model { // ... interface Array<Result> m_results; } 每个结果都有某些属性。其中包括实验时间以及实验各个阶段的一些元数据: enum Stage { Pre = 1, Post }; class Result { // ... interface Epoch m_epoch; Map<Stage, ExperimentModules> m_modules; } 好,很好。现在,每个实验模块都有一个描述实验结果的字符串,以及对实验样本集的引用的集合: class ExperimentalModules { // ... interface String m_reportText; Array<Sample> m_entities; } 然后每个样本都有...好,您得到了图片。 问题是,如果我要在应用程序域中对对象建模,这似乎是很自然的选择,但是最终,a Result只是一个愚蠢的数据容器!为它创建大量的类似乎并不值得。 假设上面显示的数据结构和类正确地对应用程序域中的关系建模,是否有更好的方法可以对这种“结果”进行建模,而无需求助于深层次的构成层次结构?是否有任何外部环境可以帮助您确定这种设计是否是好的?