@aaltqna

Как правильно разбить на классы жестко связанные объекты?

Делаю фильтры для таблицы, остановился на такой структуре:

- class FiltersControl - состоит из контейнера, куда вставляются активные фильтры, а также содержит все инстансы фильтров в массиве ( this.children = [FilterText, FilterAucomplete, ...] )

- class Filter - интерфейс

- class FilterText extends Filter - текстовый фильтр
- и т.д

Сам фильтр должен состоять из 3 компонентов: кнопка, дропдаун и тэг ( когда фильтр активен ).

1. Выносить ли дропдаун и тэг в отдельные классы? Они жестко связаны друг с другом, например, в дропдауне есть submit, который должен вызывать добавление тега на основе инпута, который у каждого фильтра отличается. Я не совсем понимаю как именно должно происходить такое взаимодействие, учитывая, что эти 2 классы будут одинаковые, но вот контент их инстансов зависит от класса фильтра.

2. Доп вопрос: допустимо ли передавать в класс Filter весь FilterControl целиком? Т.е. так new Filter( options, this ), учитывая, что инициализация происходит в FilterControl. Это работает, конечно, но выглядит странно
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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