これは、以前の質問 ( 「new」と「gen」の違い) からのフォローアップの質問です。
生成が行われる前に依存関係を構造体に渡す方法はありますか?
簡単にテストできる方法でコードを書くことに興味があります。現在、私たちのコードベースは get_enclosing_unit() を頻繁に使用して、トランスレーター/パラメーターなどのヘルパー構造体へのポインターを取得します。これにより、コードベースに双方向の依存関係が多数存在します。これは、他の構造体から独立してピースをテストするのが難しいことを意味します。
これは私が避けようとしているものの例です。
pregenerate() is also {
var translator : my_translator_s = get_enclosing_unit(some_enclosing_unit).get_translator_pointer();
};
some_enclosing_unit に依存することは避けようとしています。これは、構造体とは関係がなく、単体テストの邪魔になるためです
e にコンストラクターがないため、get_enclosing_unit() を使用せずに、呼び出し元のユニット/構造体から依存関係を渡す方法がわかりません。「new... with」は役立つように思えますが、最後の質問で学んだように、それは基礎となるフィールドを生成せず、「gen... keep」は世代が必要とする依存関係を後まで設定しません。世代が完成しました。