オブジェクト指向 ・ Chapter 13

継承を合成に書き直す

コード演習 ・ 冒頭を無料公開中

この章でやること

継承で書かれた設計を、合成に書き直すリファクタリングです。書き直す理由を自分の言葉で言えたら、ここまでの内容は合格です。

問題: 注文と支払い方法

ECサイトの注文処理が、継承で実装されています。まず現状のコードを読んでください(これが書き直し対象です)。

// 現在の設計(継承版)——これを書き直す
class Order {
  total: number;

  constructor(total: number) {
    this.total = total;
  }

  checkout(): string {
    return "支払い方法が未定です";
  }
}

class CreditCardOrder extends Order {
  checkout(): string {
    return "クレジットカードで" + this.total + "円を決済しました";
  }
}

class BankTransferOrder extends Order {
  checkout(): string {
    return "銀行振込で" + this.total + "円を受け付けました";
  }
}

コード演習はブラウザ上でそのまま実行できます

本文の残り、エディタ・テスト実行・解答コード・ヒントはプラン加入後に利用できます。

料金プランを見る