Нужно ли в данной ситуации разделить ответственность?
Добрый вечер, господа.
У меня есть класс - компонент, который:
1. Рендерит форму (Shadow DOM, style и тд) (document.createElement ...)
2. Прикрепляет обработчики событий на эту форму и ее элементы.
3. Обрабатывает события этой формы
И так, мне жутко не нравится что этот класс вроде как и "рендерит и работает с формой", что подходит под "единую ответственность"
НО в тоже время один только рендер( создание элементов document.createElement , вставка стилей и тп) занимает больше половины класса, и вроде как хочется создать отдельный класс, который будет это выполнять, и агрегировать его из моего компонента.
Как лучше это все реализовать?
Как не удариться в крайность и не начать отделять лишнее? (не могу нащупать ту тонкую грань)
Можете попробовать сделать фабрику.
Форма создаёт себя и обрабатывает собственные события. И вызывает конструкторы для дочерних элементов. И отдельный класс для каждого элемента. Он рендерит себя и обрабатывает все события связанные с этим одним элементом
Alex , у формы пару простых input и button submit, не будет лишним для них создавать отдельные классы?
Ну тоесть вы считаете, что все таки нужно отделить создание и обработку событий формы в отдельный класс?
alex4answ, Ну вот вы же хотите это дела разделить?
Вот class From создаёт только тег <form> создаёт для него стили, навешивает обработчики если нужно. И вызывает конструктор class Input который делает то же самое но уже для своего элемента <input>
Шохрух Шаймардонов, Alex, я сейчас удалю этот вопрос, переформулирую правильно и задам новый, не баньте пожалуйста меня))
Я понял что не так задал вопрос
Шохрух Шаймардонов, ладно, раньше была просто такая возможность, ладно тогда сначала перечитаю лишний раз все, потом уже приду уточнить детали, спасибо за помощь
Композиция. Крупные части выносим в файл. В классе их используем. Можно скинуть мне на почту starostin.450503@gmail.com код своего класса, подрефакторю с комментариями со своего опыта. Предполагаю, что вы используете react)