У меня есть вопрос о технике и реализации, а не о реальной проблеме, которую нужно решить. Недавно я создал абстрактный класс, назовем его A, который определяет общее поведение его подклассов.
Я использую это для создания нескольких подклассов B, C и D, которые затем передаются другому методу вне структуры суперкласса-подкласса , которая принимает тип A (таким образом, способна обрабатывать все B, C и D).
В Java я использую instanceof для извлечения истинного типа, однако в итоге мне приходится много приводить к реальному типу, и это выглядит как беспорядок. У кого-нибудь есть предложения, как сделать код чище?
Один из методов, который я попробовал, состоял в том, чтобы восстановить экземпляр типа подкласса из параметров суперкласса, чтобы я мог обрабатывать объект с его фактическим типом, избегая, таким образом, приведения типов. Поскольку каждый из этих подклассов является синглтоном (да, они поддерживают состояние), я чувствую себя нормально, делая это. Похоже ли это на грязную вещь?
Спасибо всем, кто ответит, с благодарностью!
Редактировать: Я добавил дополнительные пояснения курсивом. Спасибо.