会社にて「Service Locator パターン」という単語を聞いて「?」となったので、戒めも含めて調べてみたメモ。 いきなり結論 結論から言うと、Service Locator パターンも Dependency Injection (いわゆる DI )と同じようにクラス間の密結合度を緩和するためのものと考えてよさそう。 というか、こちらに超参考になる記述があるので、これを備忘録として残しておく。 概要 DDDとかの Repository パターンで DI を使用することがあるが、それと同じような目的で使用できる。 なんちゃってサンプルコード ここでは、ドメイン層がインフラ層に依存しないように Repository パターンを使用する場合の、 DI 版と Service Locator 版をそれぞれ考えてみる。 DI 使用したときの Repository パターン // アプリケーション
![Service Locator パターンについて - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/2a74b7ff296e6f992b75e82a5e6bc6bc4b1d3a2b/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9U2VydmljZSUyMExvY2F0b3IlMjAlRTMlODMlOTElRTMlODIlQkYlRTMlODMlQkMlRTMlODMlQjMlRTMlODElQUIlRTMlODElQTQlRTMlODElODQlRTMlODElQTYmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWRiOWIxMWM0YzFlNzgxYWZhMmFhODI2ODM2ZjNmODhi%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB0YXNzaS15dXp1a2tvJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz02YzdjNDliZGQxYThjOTczMGIxZDcxYmY5MTYyNDcxZQ%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D66ecaa6693b885cb0f3b7971a231cb54)