Advent Day 5: DI Terminology
DI用語
Day5はDay4に続かないでDIで使われる用語を色々取り上げてみます。
DI関係の記事を色々見るに言葉がよく分からない事があります。もうあまり使われてる言葉でなかったり、あるいは書かれてる時期や人で使い方やスコープが違うような感じがするときもあります。
よく分からないながらも色々掘り起こして並べてみました。
dependency
依存。オブジェクトに限らず単純な値も含みます。
dependent (dependent consumer)
依存を利用するクライアント
injector / provider / container
wikiによると”an injector (sometimes referred to as a provider or container)”
依存をdependentに用意する。”DIコンテナ”
dependency resolution
依存の解決、依存の取得方法。
Dependency Lookup1
直接の訳語は「依存の参照」
wikipediaでは通常の処理でDIとは逆。と簡単に説明してます
http://xunitpatterns.comというサイトではこのように説明しています。
Dependency Lookup is characterized by the following:
- Either a Singleton[GOF], a Registry[PEAA] or some kind of Thread-Specific Storage[POSA2],
- with an interface that fully encapsulated which implementation we are using,
- with a built-in substitution mechanism for replacing the returned object
with a Test Double - accessed via well-known global name.
Dependency Lookupは2つに分かれるそうです。
http://life.neophi.com/danielr/files/InversionOfControl.pdf
Dependency Pull
“中央”にある依存管理コンテナなどに問い合わせて依存を取得します。
Contextualized Dependency Lookup (CDL)
“渡された”コンテナから取得します。
Global Registry
Dependency Pullが用いる中央のレジストリ/コンテナ。
Service Locator
Dependency Lookupと同じ(?)、他にObject Factory, Component Broker, Component Registry等。
Dependency Injection (DI)
感想、ちょっと一言
- dependency lookupは広義では外部を参照するという意味で使われれ、狭義では特定のパターンを指すような感じがします
- CDLやLookupの言い方はちょっと古くService Locator(SL)で総称されているような感じがします。
- 一般的に「DIコンテナ」が使われますがwikiにあるように「injector」が表記としてより妥当であると思いました。
- 用語解説のよい記事になかなか巡り会えませんでした
- Service Locator ? [↩]