Задать вопрос
alex4answ
@alex4answ

Нужно ли в данной ситуации разделить ответственность?

Добрый вечер, господа.

У меня есть класс - компонент, который:
1. Рендерит форму (Shadow DOM, style и тд) (document.createElement ...)
2. Прикрепляет обработчики событий на эту форму и ее элементы.
3. Обрабатывает события этой формы

И так, мне жутко не нравится что этот класс вроде как и "рендерит и работает с формой", что подходит под "единую ответственность"
НО в тоже время один только рендер( создание элементов document.createElement , вставка стилей и тп) занимает больше половины класса, и вроде как хочется создать отдельный класс, который будет это выполнять, и агрегировать его из моего компонента.

Как лучше это все реализовать?
Как не удариться в крайность и не начать отделять лишнее? (не могу нащупать ту тонкую грань)
  • Вопрос задан
  • 468 просмотров
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ответы на вопрос 2
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Можете попробовать сделать фабрику.
Форма создаёт себя и обрабатывает собственные события. И вызывает конструкторы для дочерних элементов. И отдельный класс для каждого элемента. Он рендерит себя и обрабатывает все события связанные с этим одним элементом
Ответ написан
@ShinShil
Композиция. Крупные части выносим в файл. В классе их используем. Можно скинуть мне на почту starostin.450503@gmail.com код своего класса, подрефакторю с комментариями со своего опыта. Предполагаю, что вы используете react)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы