docs: add task specifications for project components

This commit is contained in:
2026-08-21 19:02:34 +04:00
parent c7654403a4
commit f07d181cf7
4 changed files with 184 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
# Техническое задание: заполнение коллекции
## Задача
Реализовать разные способы заполнения `MyList<Student>` данными.
## Требования
1. Создать интерфейс `DataSource` с методом:
```text
fill(int size)
```
2. Реализовать три способа заполнения:
- `ManualDataSource` — ручной ввод;
- `RandomDataSource` — случайная генерация;
- `FileDataSource` — чтение из файла.
3. Результатом работы каждого источника должна быть коллекция `MyList<Student>`.
4. Для создания объектов `Student` использовать `StudentBuilder`.
5. Все данные должны проходить валидацию средствами `Student`.
6. При ручном вводе некорректные данные не должны добавляться в коллекцию.
7. При чтении из файла некорректные строки должны обрабатываться без создания невалидных объектов `Student`.
8. Размер коллекции должен задаваться пользователем и соблюдаться при заполнении.
9. Не использовать стандартные коллекции `List`, `ArrayList`, `LinkedList` для хранения результата.
## Результат
```text
DataSource.java
ManualDataSource.java
RandomDataSource.java
FileDataSource.java
```
Классы не должны содержать логику сортировки или пользовательского меню.