Menu
CoddyTech

Lớp Book với composition

Thuộc phần Lập trình hướng đối tượng trong hành trình JavaScript của Coddy. Bài học 51 trên 56.

challenge icon

Thử thách

Tạo lớp Book bằng composition

Nhiệm vụ của bạn:

  1. Trong tệp Book.js, hãy import lớp Author ở đầu tệp
  2. Tạo và export lớp Book với:
    • Các trường private: #title, #author, #isCheckedOut
    • Hàm khởi tạo nhận title và author
    • Hai getter: title và authorInfo, getter sau trả về tên tác giả
  3. Trong main.js, thêm import cho lớp Book

Composition được áp dụng như thế nào ở đây:

Composition nghĩa là mối quan hệ "has-a". Trong lớp Book:

  • Book HAS-AN Author (không phải "is-an" Author)
  • Book chứa một instance Author như một trong các thành phần của nó
  • Author tồn tại độc lập và có thể được nhiều Book sử dụng
  • Đây là composition: tạo các đối tượng phức tạp (Book) từ những đối tượng đơn giản hơn (Author)

Tự làm thử

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

// TODO: Nhập lớp Book

// Kiểm thử
const author = new Author('J.K. Rowling');
const book = new Book('Harry Potter', author);

console.log('Book title:', book.title); // Đầu ra cần là: "Book title: Harry Potter"
console.log('Author:', book.authorInfo); // Đầu ra cần là: "Author: J.K. Rowling"

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch JavaScript online