Skip to content

Latest commit

 

History

History
33 lines (25 loc) · 3.6 KB

File metadata and controls

33 lines (25 loc) · 3.6 KB

Задача 1. Библиотека

Описание

Необходимо разработать иерархию работников библиотеки. Нужно реализовать совмещение нескольких ролей в библиотеке в одном исполнителе через интерфейсы. Каждый объект в программе имеет определенный набор действий.

Часто программист, создающий объект, не представляет все ситуации, в которых тот будет использоваться. Также программисту, использующему объект, часто неизвестны все его детали.

Для передачи информации о том, что должен уметь объект, используются интерфейсы.

Примером интерфейсов в нашей библиотеке может служить понятие роли на проекте. Каждая роль подразумевает набор определенных операций, которые должен "уметь" объект пользователь — User в программе.

Функционал программы

  1. Создайте иерархию "Пользователи библиотеки" со следующими интерфейсами:
  • Читатель – берет и возвращает книги.
  • Библиотекарь – заказывает книги.
  • Поставщик книг – приносит книги в библиотеку.
  • Администратор – находит и выдает книги и уведомляет о просрочках времени возврата.
  1. В методе public static void main создайте 2-3 объекта, реализующих эти интерфейсы.

Дополнительная информация

Учтите, что интерфейсов у пользователя (User) может быть несколько. Объекты класса User могут взаимодействовать друг с другом (например, библиотекарь заказывает у поставщика).

Пример реализации

  1. Создайте 4 интерфейса: Reader, Librarian, Supplier, Administrator. Каждый из них должен содержать описанные выше методы. Например, у администратора должен быть метод overdueNotification(Reader reader). Методы могут принимать в качестве параметра других user-ов. Например, читатель берет книги у администратора, библиотекарь заказывает у поставщика и т.д.

  2. Создайте несколько классов, демонстрирующих использование интерфейсов. В частности, продемонстрируйте совмещение, например, поставщик, который может быть также и читателем, библиотекарь – администратором и т.д. В качестве реализации методов можно сделать вывод подробного сообщения в консоль по типу "Библиотекарь Вася заказал у поставщика Петя книгу Игра Престолов".