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

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

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

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

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

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

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

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