День 572.
Итак, диаграмма классов готова, не полностью, но готова для того, чтобы начать писать код. Основные части есть, остальное по ходу, очень много всего, боюсь, что будет лишним…
30 базовых классов, из них половина отвечают за работу с базой данных, поэтому начну с них. Вначале расписал класс, отвечающий за соединение, класс из разряда синглтон. Класс, который отвечает за отсутствие базы или ее обновления. И больше дюжины классов для работы с определенной таблицей. Для каждого класса расписал по 4 метода CRUD. Потом принялся за базовые классы, методы основных объектов. Взял самый простой по структуре, переопределил методы его интерфейса, которые содержали по несколько строк, вызывая методы соответствующего класса работающего с базой данных. Теперь бы это все нужно проверить. В отдельном пакете создаю тестовый класс контрола или Activity, быстро набросал разметку интерфейса в xml, пару надписей, текстовое поле и кнопки для CRUD. В классе Activity связал элементы интерфейса, определил события и вызвал методы базового класса. Таким образом, Activity связан с интерфейсом пользователя, событие элемента управления вызывает метод(ы) базового класса объекта, а метод объекта в свою очередь вызывает метод класса «провайдера», того что работает непосредственно с базой данных.
Самое интересное, что когда начал расписывать классы «провайдеры», что так увлекся, и расписал все методы CRUD, ушло где-то 4 часа. Потом начал расписывать базовые классы… Но, решил все же не забегать наперед. Около 5 часов кода без запуска, и на удивление программа сработала без сбоя. И это с учетом того, что уже давненько не садился за Андроид.