アプリケーションで依存性注入手法を利用しようとしていますが、このコンテキストで DI が必要かどうかで混乱します..
インターフェースを考えてみましょう:
public class ICardsHub {
public T GetPlayersList<T>();
}
とその実装:
public class GenericHub : ICardsHub {
LANPlayers LANPlayers;
WaNPlayers WANPlayers;
bool AlgorithmsUseTildainLambdas=false;
public GenericHub(LANPlayers _LANPlayers, WaNPlayers _WANPlayers,
bool algorithmsUseTildainLambdas=false) {
LANPlayers = _LANPlayers;
WANPlayers = _WANPlayers;
AlgorithmsUseTildainLambdas = algorithmsUseTildainLambdas;
}
public T GetPlayersList<T>() {
....
}
}
そして、ドライバークラスは次のようなことをすることになっています:
ICardsHub _ifCards = new GenericHub(_LANPlayers, _WANPlayers);
listOfPlayers = _ifCards.GetPlayersList<List<string>>();
ICardsHub
これで、さらに 2 つの;の実装ができました。これらは後でドライバー クラスでインスタンス化されますRedHub
。BlackHub
質問
- Unity IC/DIはこのシナリオにどのようなメリットをもたらしますか?
- 問題が解決する場合striping out method parameters from the interface and injecting them to overload constructor、DI コンテナーの使用に適したシナリオは何ですか?