腐敗防止層

Domain-Driven Designのパターンの一つ。外部システムやレガシーコードとの境界に設置し、外部の概念モデルが内部ドメインを「汚染」するのを防ぐ変換層。

役割

制御結合との関係

JSON通信などで受け取る判別子(discriminator)を扱う際の設計パターン:

「入り口(Parser層)で一度だけ分岐を吸収し、内部は宣言的に実装する」

// 腐敗防止層での分岐吸収
function parseMessage(raw: RawMessage): DomainEvent {
  switch (raw.type) {
    case "user_created": return new UserCreatedEvent(raw);
    case "user_deleted": return new UserDeletedEvent(raw);
    // ここで一度だけ分岐
  }
}

// 内部は型安全・宣言的
function handleEvent(event: DomainEvent) {
  // ポリモーフィズムで処理、フラグ不要
  event.apply(this.state);
}

これにより、制御結合の問題(内部に分岐ロジックが散らばる)を回避できる。

ハイブリッドアーキテクチャ

技術的制約下では、純粋なOOPだけでは対応できない場面がある。現実的な解決策:

関連