@bybyby

Как лучше разбить класс на модули?

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

Варианты: передать результат вычисления метода из экземпляра класса А, передать метод из экземпляра класса А, сделать B extends A.

Насколько разумно в даном случае делать extends? Ведь в классе B мне не нужны все свойства и методы родительского объекта и класс B дополняет, а не расширяет класс А.
  • Вопрос задан
  • 193 просмотра
Решения вопроса 1
@hungry-devel
Погуглите, следующие термины:

SOLID: SRP, LSP, ISP
GRASP: Polymorphism, Information Expert
+ наследование подтипов

Думаю, после этого, вы сами будете в состоянии ответить на свой вопрос.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Roger2
Методы, нужные обоим, походят уже на класс типа Utils или бизнес-логику. Вынести общее в третий класс.
Ответ написан
aryutin
@aryutin
Если будет много однотипных классов, стоит создать общий класс, от которого будут наследоваться.
Например
class Button extends HTMLElement {}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы