DIコンテナ

プログラミングデザインパターン

DIとは?

 状態:-  閲覧数:1,314  投稿日:2009-07-10  更新日:2017-10-19  
英語表記
・Dependency Injection

依存性の注入
・オブジェクト生成時に他のオブジェクトを注入している形式
・クラス外でインスタンスを生成して、クラス外から引数として渡す
・コンポーネント間の依存関係をプログラムのソースコードから排除し、外部の設定ファイルなどで注入できるようにするソフトウェアパターン


DI導入メリット


クラスの単体テストがしやすくする


DI実装


コンポーネント間の関係
・インタフェースを用いて記述

コンストラクタ内でインスタンス生成を行わなくなる

引数として(Interfaceをimplementsしたクラスの)インスタンスを受け取るようになる


DIコンテナとは?


英語表記
・DI Container
・Dependency Injection Container

DI処理をコンテナの変数にまとめ、シンプルにする
・依存性を定義してコンテナという形で保管しておく
・そのコンテナを取り出すだけで依存関係を処理できるようになる
・新しいオブジェクトを作成する際、DI コンテナが自動的に依存をインスタンス化し、新しく作成されたオブジェクトに注入して、 依存を解決する

アプリケーションにDI機能を提供するフレームワーク
・「DI」と呼ぶデザインパターンに基づいて作られたコンポーネント群を集中管理するためのソフトウエア

DIコンテナを使用しないと?
・使用する度に毎回依存性のあるものを生成して注入しなければいけない


デザインパターン

コメント投稿(ログインが必要)



類似度ページランキング
順位 ページタイトル抜粋
1 コンテナフォーマット 50
2 コンテキスト 50
3 VPAID 36
4 コネクション 33
5 ワンライナー 33
6 OpenID 33
7 コーディング 31
8 DNSレコード 31
9 コンポーネント 31
10 アッパーコンパチブル 25
11 テンプレートエンジン 25
12 UI 25
13 エンタープライズシステム 22
14 システムインテグレーター 22
15 DMZ 22
16 API 22
17 CRUD 20
18 デーモン 20
19 ドングル 20
20 コミット 20
2022/7/01 5:13 更新
週間人気ページランキング / 6-24 → 6-30
順位 ページタイトル抜粋 アクセス数
1 Flash Video | コンテナフォーマット | プログラミング用語 306
2 curl | HTTPクライアント(ネットワーク) | プログラミング用語 286
3 ルーター | ネットワーク | プログラミング用語 281
3 ユースケース | 開発 | プログラミング用語 281
4 ベクトル | 数学 | プログラミング用語 236
5 デーモン | Linux | プログラミング用語 227
6 正規表現 | プログラミング | プログラミング用語 194
7 YouTube | API | プログラミング用語 171
8 チェックアウト | バージョン管理システム(開発) | プログラミング用語 117
9 分かち書き | 形態素解析 | プログラミング用語 63
10 Linux | プログラミング用語 57
11 リバースエンジニアリング | 開発 | プログラミング用語 54
12 ネットワークアドレス | ネットワーク | プログラミング用語 50
13 PowerShell | スクリプト | プログラミング用語 44
14 クローラ | 検索エンジン | プログラミング用語 31
14 可搬性 | プログラミング | プログラミング用語 31
15 Subversion | バージョン管理システム(開発) | プログラミング用語 27
16 アンチパターン | プログラミング | プログラミング用語 11
17 プログラミング用語 9
18 deflate | ネットワーク | プログラミング用語 8
2022/7/1 1:01 更新