プロジェクトがサービスロケータを使用するとき、実装クラスはロケータに登録されます。悪い事はそれがアンチパターンのようなものだということですサービスロケーション - 実装のためにプロジェクトを確認する
LSvc := Locator.Resolve<ISomeService>;
:そして、実行時に特定の場所でのロケータは、この(これらのサービスの多くはシングルトンです)のような特定のサービスを解決するように求めています。しかし、これが起こったと仮定すると、このようなロケータにクラスを登録することによってISomeServiceを実装するユニットがあるかどうかをチェックする方法はありますか?
Locator.Register<ISomeService>(TSomeService);
- ソースファイルを解析します。
- 「* .Dependencies.pas」と呼ばれる特別なユニットがあり、すべての実装ユニットがリストされています。
このシナリオでは他に何ができますか?