Выбрать предметную область и построить иерархию классов. Иерархия должна включать не менее 6 классов. Реализовать сериализацию/десереализацию объектов из полученной иерархии классов в файл/из файла, формат сериализации определяется индивидуальным вариантом. В пользовательском интерфейсе необходимо реализовать следующие функции:
- возможность изменять свойства объектов (редактирование);
- добавлять/удалять объекты из списка;
- сериализация/десериализация списка объектов. Добавление новых классов в иерархию не должно приводить к необходимости переписать существующий код, и не использовать if-else/switch-case, рефлексию. Опционально: реализация графический интерфейс.
Варианты
| Номер варианта | Формат сериализации |
|---|---|
| 1 | XML |
| 2 | Binary |
| 3 | Text |
| 4 | JSON |
| 5 | BSON |
Номер варианта определяется по формуле: ("порядковый номер в группе" MOD "количество вариантов") + 1.
Проект должен разрабатываться с использование системы контроля версий git/svn. Все методы, большие блоки кода должны содержать комментарии. Язык комментариев - английский.