Тож я досить новачок у програмуванні в реальному світі (за межами академічних проектів) і натрапив на безліч дописів, у яких говориться, що використовувати instanceof
це погано, щоб визначити, для якого класу конкретний об’єкт.
Моя ситуація полягає в тому, що у мене є три класи, базовий клас продуктів, той, який розширює цей, і інший, який продовжує це. Усі вони зберігаються в одній таблиці в базі даних, і у мене є якийсь код, який повинен використовувати методи на кожній, щоб витягувати дані з них.
Яка найкраща практика обійти цей спосіб? Я прочитав деякі речі про поліморфізм, але не можу знайти жодного прикладу, який би вирішив цю проблему. Зазвичай вони замінюють метод, який для мене не буде працювати, оскільки мені потрібно тягнути різні речі з різних об'єктів.
Чи є кращий спосіб зробити це чи я застряг із використанням instanceof
чи якимось відображенням, щоб отримати специфічні для об’єктів поля?
getSpecifics()
який реалізується по-різному на кожному, при цьому кожен повертає дані, специфічні для класу?
instanceof
неправильне; намагання знайти клас об’єкта, як правило, є проблемою. Не завжди помиляється, але, мабуть, у вашому випадку це так. Можливо, якщо ви скажете нам, що ви намагаєтеся досягти, ми можемо запропонувати рішення, використовуючи поліморфізм.