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

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

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

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

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

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

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