コンポジションを用いた Book クラス
CoddyのJavaScriptジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 51/56。
チャレンジ
コンポジションを使用した Book クラスの作成
あなたのタスク:
Book.jsという名前のファイルの先頭でAuthorクラスをインポートします- 以下の内容を持つ
Bookクラスを作成し、エクスポートします:- プライベートフィールド:
#title,#author,#isCheckedOut titleとauthorを受け取るコンストラクタ- 2つのゲッター:
title、および著者の名前を返すauthorInfo
- プライベートフィールド:
main.jsにBookクラスのインポートを追加します
ここでのコンポジションの適用方法:
コンポジションとは「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"