JDBC z SQLite

0

Cześć,
szukam podpowiedzi jak najlepiej, zgodnie ze sztuką wykorzystać dziedziczenie i interfejsy w poniższym przypadku:
Mam program z GUI, który łączy się z bazą sqlite i wykonuje zapytania, dodaje i usuwa dane. Mam też kilka kontrolerów bo tak to sobie wymyśliłem, że każde okno będzie miało własny kontroler. I teraz właśnie nie wiem czy utworzyć nową klasę gdzie będzie metoda "connector()" i niech każda klasa kontrolera dziedziczy po niej, czy w każdym kontrolerze powinienem tworzyć nowe połączenie?

Będę wdzięczny za rady/linki do przykładów.

0

Generalnie najlepiej żeby kontroler nie wiedział o tym że pod spodem jest jakiś konektor ani inne dziadostwo. Typowo to się implementuje jako repozytorium (interface) które ma metody typowe dla tego co sobie tam chowa (daj po idku, stwórz nowy obiekt i daj mi idka, zrób update obiektu z takim-a-takim idkiem, daj wszystkie cosie które spełniają jakiś specyficzny warunek itp), dzięki temu chociażby możesz to sensownie testować (w testach akceptacyjnych sobie odpowiednio podmieniasz implementację tego repozytorium np na mapę w pamięci albo całkowicie korzystasz z mocka w testach integracyjnych).

Takie metody projektowania zwykle są pod parasolem "dependency inversion principle" - na danym poziomie abstrakcji korzystasz wyłącznie z interfaceów z danego poziomu abstrakcji, a nie z abstrakcji poziomu niżej (tutaj niżej byłoby JDBC albo jakieś ORMo, które nie mają w ogóle związku z abstrakcyjną dziedziną problemu które twoje dane reprezentują). Konkretne implementacje tych interfaceów oczywiście korzystają z tych niższych abstrakcji, ale kod który z nich korzysta ma to gdzieś.

1 użytkowników online, w tym zalogowanych: 0, gości: 1