Jestem więc całkiem nowy w programowaniu w świecie rzeczywistym (poza projektami akademickimi) i natrafiłem na wiele postów, które mówią, że używanie instanceof
jest złe, aby określić, jaką klasą jest dany obiekt.
Moja sytuacja jest taka, że mam trzy klasy, podstawową klasę produktu, jedną, która ją rozszerza, i drugą, która ją rozszerza. Wszystkie są przechowywane w tej samej tabeli w bazie danych i mam trochę kodu, który wymaga użycia metod na każdym z nich, aby pobrać dane.
Jaka jest najlepsza praktyka, aby obejść ten sposób? Przeczytałem kilka rzeczy o polimorfizmie, ale nie mogę znaleźć żadnych przykładów, które rozwiązałyby mój problem. Wszystkie zwykle zastępują metodę, która dla mnie nie działa, ponieważ muszę wyciągać różne rzeczy z różnych obiektów.
Czy istnieje lepszy sposób, aby to zrobić, czy utknąłem przy użyciu instanceof
lub jakiegoś odbicia, aby uzyskać pola specyficzne dla obiektów?
getSpecifics()
która jest implementowana w różny sposób dla każdej z nich, przy czym każda zwraca dane specyficzne dla klasy?
instanceof
jest nieprawidłowe; Problemem jest zazwyczaj próba znalezienia klasy obiektu. Nie zawsze źle, ale prawdopodobnie tak jest w twoim przypadku. Może jeśli powiesz nam, co próbujesz osiągnąć, możemy zaproponować rozwiązanie wykorzystujące polimorfizm.