Menu
Coddy logo textTech

コンポジションを用いた Book クラス

CoddyのJavaScriptジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 51/56。

challenge icon

チャレンジ

コンポジションを使用した Book クラスの作成

あなたのタスク:

  1. Book.js という名前のファイルの先頭で Author クラスをインポートします
  2. 以下の内容を持つ Book クラスを作成し、エクスポートします:
    • プライベートフィールド: #title, #author, #isCheckedOut
    • titleauthor を受け取るコンストラクタ
    • 2つのゲッター: title、および著者の名前を返す authorInfo
  3. main.jsBook クラスのインポートを追加します

ここでのコンポジションの適用方法:

コンポジションとは「has-a(持っている)」関係を意味します。この Book クラスでは:

  • Book HAS-AN Author(本は著者を持っている。著者の「一種」ではない)
  • Book はその構成要素の1つとして Author インスタンスを含んでいます
  • Author は独立して存在し、複数の Book で使用される可能性があります
  • これがコンポジションです:単純なオブジェクト(Author)から複雑なオブジェクト(Book)を構築することです

自分で試してみよう

import { Author } from './Author.js';

// TODO: Bookクラスをインポートする

// テスト
const author = new Author('J.K. Rowling');
const book = new Book('Harry Potter', author);

console.log('Book title:', book.title); // 出力結果: "Book title: Harry Potter"
console.log('Author:', book.authorInfo); // 出力結果: "Author: J.K. Rowling"

オブジェクト指向プログラミングのすべてのレッスン