Вы проектируете приложение по работе с книгами и авторами (библиотека).
Приложение должно уметь сохранять\находить\удалять книги.
Приложение должно отдельно хранить информацию об авторах.
Вы создатите структуру приложения используя наследование и иплементацию интерфейсов.
Также вы напишите реализацию для всех методов.
-
Создайте ветку feature и продолжите разработку в ней
-
Сейчас существуют следующие классы:
- Book (базовая сущность книги)
- Schoolbook (книга для школы)
- Author (автор книги)
Изучите их.
Добавьте в них все, что указано в их описании.
- Также сейчас существуют следующие интерфейсы:
- AuthorRepository (интерфейс репозитория для авторов)
- AuthorService (нтерфейс сервиса для авторов)
- BookRepository (интерфейс репозитория для книг)
- BookService (интерфейс сервиса для книг)
Что такое сервисы и репозитории:
- Слой сервиса выполняет бизнес логику и обращается затем к репозиторию или другому сервису
- Слой репозитория выполняет сохранение\получение\удаление данных из хранинилища
Если говорить кратко, то когда мы хотим сохранить новую книгу, мы передаем информацию о ней на слой сервиса (то есть вызываем у сервиса метод сохранения), в методе сервиса могут происходить различные проверки.
Далее если все прошло хорошо на уровен сервиса, мы вызываем у репозитория аналогичный метод сохранения, который тоже принимает информацию о книге.
А внутри репозитория уже происходит добавление книги в хранилище (в нашем случае в массив).
Изучите эти интерфейсы.
Сделайте все, что указано в их описании.
- Удостоверьтесь что все тесты выполняются корректно.
Тесты проверяют не только логику, но и наличие полей, их типы, методы классов, конструкторы итд.
Основной тест - "Проверка всей общей логики работы сервисов и репозиториев" последовательно производит различные манипуляции с сущностями.
Он сохраняет, удаляет, ищет, снова сохраняет и так далее. При этом, он проверяет что все происходит так, как того ожидают требования.
Например, он проверяет, что после сохранения первой книги, ее можно найти и сервис книг возвращает количество книг = 1. А после удаления данной книги, она не находится по имени и размер количества сохраненных книг стал = 0.
Вы можете пройтись по данному тесту и посмотреть какие операции он производит.
- Запуште все изменения на гитхаб и создайте pull-request в ветку master.