Jak rozmawiać z bazami danych?

Kilka ostatnich wpisów mniej lub bardziej luźno dotyczyło komunikacji programu z bazą danych. Opisywałem w nich swoje rozważania na temat różnych wzorców i zasad oraz problemy związane z ich łamaniem lub przestrzeganiem.

Jako, że udało mi się wreszcie doprowadzić architekturę aplikacji do stanu, w którym – moim zdaniem – komunikacja z bazą jest zrobiona dość sensownie, ten wpis opisze konkretne rozwiązanie, które już czeka na Was w repozytorium.

Czytaj dalej

Testy jednostkowe – czyli dlaczego łamanie prawa Demeter boli

Tak jak niedawno zapowiadałem, przerobiłem kod aplikacji na styku klas DataBase i TaskList. W skrócie: teraz cały kod związany z odczytem zadań z bazy jest w tej pierwszej. TaskList więc nie posiada już metody tasks, a podczas wywołania na nim showOn, dzieje się tylko tyle:

@Override
public void showOn(final TaskListView view) {
  for (ITask task : dataBase.getTasks()) {
    task.showOn(view);
  }
}

No i… okazało się, że wciąż robi za dużo. Ale o tym za więcej chwilę.

Czytaj dalej