Класс Book с использованием композиции
Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 51 из 56.
Задание
Создание класса Book с использованием композиции
Ваша задача:
- В файле с именем
Book.jsимпортируйте классAuthorв самом верху - Создайте и экспортируйте класс
Bookсо следующими элементами:- Приватные поля:
#title,#author,#isCheckedOut - Конструктор, который принимает
titleиauthor - Два геттера:
titleиauthorInfo, который возвращает имя автора
- Приватные поля:
- В файле
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"Все уроки раздела Объектно-ориентированное программирование
1Объекты и ключевое слово this
Краткий обзор: ОбъектыДобавление методов в объектыПонимание ключевого слова thisФункции-конструкторыКлючевое слово newИтоговое испытание7Наследование и ключевое слово extends
НаследованиеОтношение «is-a»Ключевое слово extendsМетод super()Наследование свойств и методовИтоговое испытание10Полиморфизм
Что такое полиморфизм?Переопределение унаследованных методовИспользование superИтоговое задание13Композиция против наследования
Отношения «has-a» и «is-a»Ограничения глубокого наследованияСоздание объектов2Организация кода
Что такое модули?Экспорт с помощью exportИмпорт с помощью importDefault против именованных экспортов5Инкапсуляция и доступ
ИнкапсуляцияПубличные и приватные поля классовПриватные методыЗадание на повторение8Организация кода ООП
Организация классов в модули11Проект: Отрисовщик фигур
Настройка: Класс Shape и экспортНаследование класса Circle14Система управления библиотекой
Проектирование библиотекиКласс Book с использованием композиции6Проект: Простой банковский счет
Класс BankAccountПополнение и снятие средств9Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закрепление