Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

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

Описание

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

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

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

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

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

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

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

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

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

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

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