Kod, który wywołał to pytanie, to usługa w bazie kodu mojej firmy, która zawierała cztery różne DAO. Niewiele o tym myślałem, dopóki nie zobaczyłem, że ta Usługa została połączona z metodami, które należały do zupełnie innej Usługi. Powodem stworzenia tych nieuzasadnionych metod w ramach tej Usługi było po prostu to, że potrzebne DAO były prywatnymi członkami tej klasy Usług.Czy związek między Usługą a DAO powinien być jeden do jednego lub jeden do wielu?
Czy to jest błąd programisty, czy też w większości przypadków jest ono niewłaściwe w przypadku posiadania więcej niż jednego DAO na klasę usług?
Uwaga: Zauważyłem, że uzasadnione jest posiadanie więcej niż jednego DAO na klasę usługi, o ile wszystkie są zawarte w tej samej bazie danych. Ale posiadanie DAO z wielu baz danych wygląda na to, że może powodować problemy.
To robi. W moim przypadku myślę, że miałem do czynienia z błędami programistycznymi, w których ludzie wpychali rzeczy do Usługi na podstawie pól DAO, zamiast bazować na intencjach Usługi. – stevebot
Ahh, problemy z polimorfizmem dziedziczenia i podtypu ... wszystko poza tym, ładna anegdota ;-) –
Moim zdaniem, Usługa zapewnia określony zestaw usług do obsługi niektórych działań użytkownika. Te usługi mogą lub nie mogą wykorzystywać DAO do wykonania pracy. Z drugiej strony DAO zapewnia komunikację między usługą a bazą danych, ale nie powinna wiedzieć nic o tym, o co chodzi w żądaniu użytkownika. Jeśli twórca miksuje oba te elementy razem, to nie widzę sensu posiadania Usług i DAO, ponieważ można je po prostu połączyć ze sobą, co jest okropnie złe, ponieważ nie można ponownie użyć całego kodu. :) – limc