У цьому завданні ви моделюєте невелику систему, схожу на ті, з якими стикаються розробники в реальних проєктах. Завдяки цьому попрактикуєтесь у застосуванні ключових принципів ООП — інкапсуляції, композиції, наслідування і поліморфізму — у зв’язному, життєвому контексті.
Вам потрібно реалізувати модель бібліотеки з підтримкою об’єктів: книги, автори, фізичні примірники, читачі, бібліотека як агрегатор. Основна мета — реалізувати предметну область з використанням ключових понять ООП у TypeScript.
Author зберігає ім’я та список написаних книг.Book реалізує AbstractBook, містить назву, рік, автора.EBook реалізує AbstractBook, додає поле url.Copy містить посилання на книгу та прапорець isAvailable.Reader має унікальний id, ім’я та список позичених копій.Library надає методи для:
BorrowService окремий сервіс для позичання книги читачу borrow(reader: Reader, copy: Copy).