LINEで個別相談
プログラミング 2026-04-09

IT用語: 依存性の注入(DI)とは|テストしやすいコードを書く設計原則

クラスが依存するオブジェクトを外部から渡す「依存性の注入(Dependency Injection)」の概念とテスタビリティへの効果を解説。

依存性の注入(DI)とは

依存性の注入(Dependency Injection)は、クラスが必要とするオブジェクト(依存性)を、クラス内部で生成するのではなく外部から渡す設計パターンです。SOLID原則のD(依存性逆転の原則)を実現する手段として使われます。

DIを使わない問題

class OrderService {
  constructor() {
    this.db = new PostgreSQLDatabase(); // 内部でDBを直接生成
  }
}
// → テスト時にも本物のDBが必要になる

DIを使った改善

class OrderService {
  constructor(db) {  // 外部から注入
    this.db = db;
  }
}

// 本番: 本物のDB
const service = new OrderService(new PostgreSQLDatabase());

// テスト: モックに差し替え可能
const service = new OrderService(new MockDatabase());

DIコンテナ

TypeScriptではInversifyJS・NestJSのDIコンテナ等が依存関係の管理を自動化します。大規模アプリケーションでは依存関係の木構造をコンテナが解決します。

関連する用語 (プログラミング)

全33件を見る

Sponsored Link

バグ・要望を報告する