这是我之前的问题( “new”和“gen”之间的区别)的后续问题。
有没有办法在生成发生之前将依赖项传递到结构中?
我有兴趣尝试以易于测试的方式编写我的代码。目前,我们的代码库经常使用 get_enclosure_unit() 来获取指向辅助结构的指针,例如翻译器/参数。这导致我们的代码库中有很多双向依赖。这意味着很难独立于其他结构来测试片段。
这是我试图避免的一个例子。
pregenerate() is also {
var translator : my_translator_s = get_enclosing_unit(some_enclosing_unit).get_translator_pointer();
};
我试图避免依赖 some_enclosure_unit 因为它与我的结构无关并且妨碍了单元测试
由于 e 中缺少构造函数,我不知道如何在不使用 get_enclosure_unit() 的情况下从调用单元/结构传递依赖项。“new...with”似乎可以提供帮助,但正如我在上一个问题中了解到的那样,它不会生成基础字段,并且“gen...keeping”直到之后才设置我的一代所需的依赖项生成已完成。