Как лучше разбить класс на модули? Есть основной class A, который содержит в себе весь код.
Я хочу разбить программу на модули. Например, вынести отдельный ui в класс B. Экземпляр этого класса создает новую разметку и возвращает ее, однако класс B требует параметры из класса A и некоторые методы. Необходимые параметры я передаю в аргументах, а вот как поступить с методами затрудняюсь в решении. Так как методы мне понадобятся в обоих классах. Я не хочу их копировать вручную, чтобы не противоречить принципу DRY.
Варианты: передать результат вычисления метода из экземпляра класса А, передать метод из экземпляра класса А, сделать B extends A.
Насколько разумно в даном случае делать extends? Ведь в классе B мне не нужны все свойства и методы родительского объекта и класс B дополняет, а не расширяет класс А.

21 Авг 2019 в 06:59
207 +1
0
Ответы
1

В данной ситуации необходимо внимательно продумать иерархию классов и выбрать наиболее подходящий способ разделения функциональности.

Если класс B расширяет функциональность класса A, то использование наследования через extends может быть разумным решением. В этом случае класс B будет иметь доступ ко всем методам и свойствам класса A и сможет дополнять их своими собственными. Однако, необходимо учитывать принцип единственной ответственности (Single Responsibility Principle) - классы должны иметь только одну ответственность, поэтому следует избегать перегрузки классов слишком большим объемом кода.

Если функциональность класса B отличается от функциональности класса A и он не является его расширением, то возможно стоит вынести общие методы в отдельный класс или интерфейс и передавать экземпляр класса A как зависимость в класс B. Таким образом, вы сохраните принцип DRY и разделите функциональность классов более четко.

Также стоит учитывать, что передача результатов вычислений из класса A в класс B через аргументы может быть удобным способом решения проблемы, но необходимо внимательно контролировать уровень связности классов и избегать излишней зависимости между ними.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир