Co ladniejszym rozwiazaniem ?

0

Witam,

mam pytanie, zalozmy ze mam Encje Produkt (Hibernate), która ma pola (String name, ... i wiele innych) i mam ich setki w bazie. W jednym miejscu aplikacji na gui chce wypisac (niewazne, dajmy na to w tabelce, czy liscie) liste wszystkich nazw produktow, ktore z rozwiazan bedzie najbardziej ladne:

(zakladam, ze mam pelny wzorzec dao zrobiony i "managery", które korzystaja z dao i udostepniaja fukcjonalnosc po stronie wodoku) Jest już gotowa metoda pobierajaca liste wszystkich encji produkt z bazy

Ktore rozwiazanie najlepsze:

  1. Nie dopisuje nowych metod w dao, typu getAllProcuctsName, tylko w managerze ProductManager, dopisuje metode getAllProductName, ktora wewnatrz uzywa istniejacej metody z dao pobierajacej wszystkie encje produktow, przelatuja je i wyrzuca liste nazw.
  2. Dopisuje do dao getAllProcuctsName, i w managerze tylko przykrywam jej funckjonalnosc (tylko ja wywoluje wewnatrz malej metodki)

mam nadzieje ze moj opis jest zrozumialy

0

Oba rozwiązania są dobre. Rozwiązanie 1 jest dobre jeśli metoda o której mówisz jest używana tylko w jednym miejscu i nie chcesz niepotrzebnie zasyfiać nią Interfejsu, szczególnie jeśli używasz jakiegoś ładnego GenericDao (a mam taką nadzieję...). Rozwiązanie 2 jest dobre jeśli metoda o której mówisz jest używana często, albo Interfejs jest na tyle mały że dodanie tej metody nie stanowi problemu. Rozwiązanie 2 jest też lepsze jeśli walczysz o szybkość działania, bo możesz napisać zapytanie które wybiera tylko nazwy.

0

Rozwiązanie 3 pośrednie. W generycznym dao dopisujesz metodę getFieldsOnly, która jako parametr przyjmuje funkcję transformującą obiekt z bazy na listę pól.

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