Как в Java разбить класс на три более мелкие, чтобы не потерялась цепочка наследования?
Есть класс B. Нужно его разбить на классы H и G, не потеряв цепочку наследования, чтобы наследникам класса В тоже были доступны методы новых классов, а классам H и G - доступны методы класса А и В.
- Перетаскиваете ту логику, которая вам нужна в класс H и G (без наследования)
- В классе 'B' делаете поля для экземпляров H и G (прикидываете через конструктор, или там-же инициализируете.
- 'B' наследуете от A. Опционально даёте как-нибудь потомкам доступ к H и G (через методы B или напрямую к полям)
Владимир, да какой уж тут зачёт) Это одна из проблем начинающего быстроразвивающегося проекта. Хочется привести всё в порядок, чтобы потом не зарыться в куче непонятного кода.
Anton Gofman, Тогда разносите по интерфейсам. Насколько я понял классы тяжелые из бизнес логики?
Сейчас как я понял пришло время наведения порядка или надоело копаться в лапше?
В общем выделяйте схожий функционал и переносите его в новое место. B пометьте как Deprecated
И поихоньку избавляйтесь от ссылок на него
Владимир, пишу проект для автоматизации десктоп приложения. Там создавался изначально класс для взаимодействия с приложением. Но он быстро разросся, и методы эти нужно переносить по классам, чтобы другим классам, которые наследуются от этого класса с методами, тоже были доступны эти методы для вызова.
Вряд ли тут помогут интерфейсы, т.к. реализацию методов не нужно менять.
Не понял ваш комментарий... Да и не важно.
Имел ввиду разработчиков выше Junior. Кто может отличить полиморфизм от наследования.
Автор скорее всего проходит собеседование. Вопрос аналогичен тому, что задаю на устных собеседованиях. На знание ограничений языка и умение их обработки.
Не планировал спорить. Ваш ответ подойдёт, для уровня Junior.