Menu
Coddy logo textTech

Класс Book с использованием композиции

Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 51 из 56.

challenge icon

Задание

Создание класса Book с использованием композиции

Ваша задача:

  1. В файле с именем Book.js импортируйте класс Author в самом верху
  2. Создайте и экспортируйте класс Book со следующими элементами:
    • Приватные поля: #title, #author, #isCheckedOut
    • Конструктор, который принимает title и author
    • Два геттера: title и authorInfo, который возвращает имя автора
  3. В файле main.js добавьте импорт для класса Book

Как здесь применяется композиция:

Композиция означает отношение "has-a" (содержит). В нашем классе Book:

  • Book HAS-AN Author (Книга СОДЕРЖИТ автора, а не "является" автором)
  • Книга содержит экземпляр Author как один из своих компонентов
  • Автор существует отдельно и может использоваться несколькими книгами
  • Это и есть композиция: создание сложных объектов (Book) из более простых (Author)

Попробуйте сами

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"

Все уроки раздела Объектно-ориентированное программирование