@devunion

Как правильно сделать пакеты в Dart?

Добрый день, потихоньку осваиваю Дарт. Есть опыт разработки на Java, по этому пробую сделать по аналогии, но что-то меня смущает. В общем, задача сделать ДАО слой. За основу взял это: www.oracle.com/technetwork/java/dataaccessobject-1...

У меня получилась следующая структура пакетов и нужных классов:
db/
+ sqlite
| +- SqLiteDaoFactory
+- AbstractDaoFactory

В AbstractDaoFactory есть статический метод, который возвращает запрошенную реализацию фабрики:
static DaoFactory getDAOFactory(StorageType type) {
    switch (type) {
      case StorageType.SQLITE:
        return new SqliteDaoFactory();

      default:
        return null;
    }
  }


При этом мы получаем циклическую зависимость между пакетами db/ и db/sqlite. Т.к. SqliteDaoFactory наследуется от AbstractDaoFactory. Что-то мне это не очень нравится. Как это правильно делать в Дарте? Складывать все в один пакет как-то не очень хочется.

Пару дополнений. Слой абстракции нужен т.к. планирую тестировать различные базы данных. Возможно, даже использовать различные реализации для различных задач. Тот код, который видел в статьях по Flutter, ну совсем не нравится. Там вообще вся работа с БД в один класс свалена.

Flutter и так как-то чертовски запутан по сравнению с тем же Swing, так что не хочется получать гемор на пустом месте при работе с БД.
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы