依存性の注入
↑ “Dependency Definition & Meaning - Merriam-Webster”. Merriam-Webster. 2022年9月3日閲覧。 “: something that is dependent on something else especially : a territorial unit under the jurisdiction of a nation but not formally annexed by it”
↑ 『Seasar2で学ぶ DIとAOP アスペクト指向によるJava開発』技術評論社、2006年8月9日。
↑ 『オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方』技術評論社、2016年9月2日。
1 2 3 4 “Java開発を変える最新の設計思想「Dependency Injection(DI)」とは”. ITPro (2005年2月18日). 2014年2月20日閲覧。
↑ “Java EE 6: Understanding Contexts and Dependency Injection (CDI), Part 1”. オラクル (2010年5月25日). 2014年2月20日閲覧。
↑ Microsoft.Extensions.DependencyInjection Namespace | Microsoft Docs
マークアップ言語であるHTML (HyperText Markup Language) でも依存性の注入がおこなわれる。
WebComponents(カスタム要素 + Template要素+ ShadowDOM)の登場により、巨大なHTMLファイルを小さなHTML要素コンポーネントの集合として記述することが可能になった。しかし大きなコンポーネント Big が小さなコンポーネント Small を包む形でコーディングすると、Big が Small に依存してしまう。そこでslot要素を用いた依存性の注入がおこなわれる。slot要素は弱いinterfaceとして働き、slot要素を用いて定義されたカスタム要素を利用する際に依存性をタグで囲むことで注入できる。
下記の例では大きなコンポーネント<my-element-with-slot>が2つの受け入れ可能slotを持っている。利用時にslotを指定したspan要素を挿入することで、<my-element-with-slot>はspan要素に直接依存せずにspan要素を利用できる。プログラミング言語のような明示的interfaceがない(interfaceによる型指定slot要素がない)ために型支援を受けた安全な依存性の注入は現時点ではおこなえないが、適切に設計することで依存性を切り分けることは可能である。