以下のように ControllerA から呼び出される場合と ControllerB で呼び出される場合で DbRepository と InMemoryRepository を呼び出しわけたい。(各Repositoryは共通のインターフェイスを実装している)
- ControllerA#get() → ServiceX#doSomething() → DbRepository#findById()
- ControllerB#get() → ServiceX#doSomething() → InMemoryRepository#findById()
この場合はそれぞれ以下のようにすれば期待する動作になる。