再利用可能なライブラリで型の動作を変更する (簡単にするために) 2 つの設定があるとします。
構成クラスを定義できます。
class Config {
public bool Behaviour1 { get; set; }
public bool Behaviour2 { get; set; }
}
そのようなことを行う場合よりも、インスタンスを構成ルート(IoC で処理されているかどうかに関係なく) から階層全体に伝播する必要があります。
コードは多数の条件ステートメントによって侵略され、可読性、保守性、および拡張性が低下します。
2 つの行動タイプを定義する方がよいのではないでしょうか?
public class Behaviour1 : IBehaviour1 {}
public class Behaviour2 : IBehaviour2 {}
他のタイプが から持っているグローバルな依存関係を削除しConfig
ます。動作を必要とする各クラスは依存し、そのファクトリはタイプIBehaviourX
に基づいて適切な具象を注入します。Config
このように、ごく少数の最上位タイプのみが Config に依存し、割り当て動作(しゃれを許してください) の動作は階層全体に伝播しません。
そのような場合の解決策に興味があります。