Flex, RobotLegs: должны ли вы быть посредниками всех дочерних компонентов визуального компонента? - PullRequest
2 голосов
/ 22 ноября 2010

В примерах для RobotLegs выясняется, что медиаторы используются для каждой кнопки / textArea, а не для пользовательского компонента, содержащего эти дочерние элементы.Это будет очень много времени, не так ли?

Из Joel Hooks Пример InsideRia

Внедрение зависимостей лучше работает с однозначными классами.Это означает, что, расширяя TextArea в наш новый класс MessageView, мы создаем особый компонент представления для внедрения зависимости.Это важно, если бы в нашем приложении было несколько TextAreas, предназначенных для разных целей.Таким образом, разделяя наши классы, мы четко определяем намерение этого класса и позволяем инструментам внедрения зависимостей эффективно выполнять свою работу.

Ответы [ 2 ]

1 голос
/ 22 ноября 2010

Нет, не опосредуйте каждый дочерний компонент.Ваши компоненты должны быть организованы в группы, которые выполняют связанные действия.В примерах компоненты предельно просты и не отражают, как будет выглядеть реальное приложение.

0 голосов
/ 04 апреля 2012

Одно правило, которое я использую, заключается в том, чтобы подумать, нуждается ли этот компонент в связи с остальной частью приложения, или если это только часть целого.Помните, что посредник предназначен только для того, чтобы служить мостом между представлением и приложением.

Например, если у меня есть представление с формой (например, форма входа в систему), я не опосредую вседочерние компоненты (текстовые поля, кнопки и т. д.), потому что они были бы бессмысленными и имели бы распространение классов и объектов во время выполнения.Когда я делаю форму, я думаю, что делает вид сам по себе?и что другие части приложения должны делать с ним?Когда пользователь заполняет форму и нажимает кнопку, представление отправляет событие (LoginRequestEvent, в данном случае), а затем посредник должен повторно отправить это событие, что делает посредника очень скудным.

Но с практикойрамки, вы придете с этим чувством того, что вы должны быть посредником.Например, в одном приложении я опосредую каждое средство визуализации элементов списка, а в другом я опосредую стек представлений с двумя или тремя содержимыми навигации.

Надеюсь, это поможет

...