Skip to content

Latest commit

 

History

History
48 lines (32 loc) · 3.59 KB

CRC.md

File metadata and controls

48 lines (32 loc) · 3.59 KB

1) Card

Ответственность: репрезентация данных флэш карточки.

2) ConsoleWorker

Ответственность: считывает из консоли команды пользователя и перенаправляет их выполнение в другие части программы.

Примерные команды: Добавить/удалить/изменить/запросить для повторения карточку. (По сути CRUD).

3) CardLibrary (интерфейс)

Ответственность: хранит флэш карточки, реализует всю необходиму логику работы с карточками. Фильтрует и отдает необходимые карточки. Создает, обновляет и удаляет карточки.

Разные классы используют разные источники карточек(база данных, файл, API) Изначально одна имплеминтация DbCardLibrary

4) CardPicker (интерфейс)

Имеет метод getCard, который возвращает наиболее подходящую карточку для пользователя в данный момент времени.

Классы, которые реализуют данный интерфейс, возвращают наиболее оптимальную в данный момент карточку с точки зрения какой-либо методики повторения.

Изначально только один класс SpacedRepetitionCardPicker, который подбирает карточки по методике интервальных повторений.

5) Solution

Ответственность: репрезентация результатов единичного решения карточки. С помощью объектов данного класса анализируются успехи пользователя по конкретным карточкам.

6) SolutionLibrary (интерфейс)

Ответственность: хранит решения пользователя по карточкам, реализует всю необходиму логику работы с ними. Фильтрует и отдает необходимые решения. Создает, обновляет и удаляет решения.

Разные классы используют разные источники решений(база данных, файл, API) Изначально одна имплеминтация DbSolutionLibrary

7) InputHandler

Обрабатывает введенное пользователем решение по карточке

8) SolutionReportGenerator (интерфейс)

Ответственность: генерирует отчет о том как пользователь решил карточку. Разные классы, которые реализуют данный интерфейс, выдают разные сообщения об ошибке с точки зрения разных метрик

(например просто сообщают правильно ли пользователь ввёл решение карточки, либо выдают количество ошибок). Изначально только один класс IsOkReportGenerator который сообщает правильно или неправильно была решена карточка.