
287
導
入
編
1
設
計
編
ア
キ
テ
ク
チ
ャ
編
2
3
4
5
6
7
6
依存性の注入(
DI
)
これまでに紹介してきたサブシステム分割やレイヤーなどは、システムの
保守性を高めるためにクラス間の依存関係を整理する手法です。これから説
明するDI(依存性の注入)も、同じようにクラス間の依存関係を整理する
ための手法です。DIもシステムの保守性を高めます。
DIはDependency Injection の略で、日本語では「依存性の注入」と呼ば
れます。DIはクラスの呼び出し元と、呼び出すクラスとの間を疎結合にす
るための仕組みです。
のようなクラス図があるとします。Tunerクラスはラジオのチュー
ナーを表します。Tunerクラスには外部出力としてSpeakerクラスが1 つ付
いています。Tunerクラスがラジオの電波を受信して、Speakerクラスから
音声を出力することができます。もちろん、それ相当のハードウェアと連動
して動くのでしょう。
Tuner
Speaker
図
6
-
13
:クラス図の例
さて、このサンプルでは、TunerクラスはSpeakerクラスに直接関連して
います。Tunerクラスは、Speakerクラスと直結していることになります。
スピーカー標準装備のラジオチューナーということです。スピーカー標準装
備はうれしくもあり、邪魔でもあります。スピーカーを外してヘッドホンで
聞きたい場合もあるでしょう。街の中で聞くには、ヘッドホンのほうが音質