Хост-компонент Flex4 имеет ту же функцию, что и посредник / помощник вида? - PullRequest
3 голосов
/ 17 июля 2011

Исходя из Robotlegs / PureMVC, я довольно хорошо знаком с концепцией посредника представления, то есть компонента, который в значительной степени прослушивает события / запросы, поступающие из «фиктивного» представления, и делает дополнительный запрос, отправляет приложение в масштабах всего приложения.сигнал / событие, выполняет команду и т. д. на основе запроса из представления.

Может ли идея компонента хоста, представленная во Flex 4, рассматриваться как посредник?Единственное, что меня немного беспокоит, так это то, что хост-компоненты все еще считаются представлениями, потому что они расширяют SkinnableComponent или любой из классов, которые наследуются от него.На мой взгляд, посредник должен быть полностью исключен из поля зрения логики.

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

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

1 Ответ

1 голос
/ 17 июля 2011

Меня также беспокоит это в шаблоне SkinnableComponent. Мне нравится мое поведение жить в классах, которые не являются компонентами просмотра. Мне даже не нравятся ссылки на компоненты представления, поэтому я предпочитаю шаблон «Модель представления». При SkinnableComponent хост-компонент по-прежнему является компонентом представления, но он поддерживает все общее поведение. Это похоже на беспорядок, и я не большой поклонник этого. Я, однако, чувствую, что это довольно хороший способ создания многократно используемых скиновых компонентов. Хорошо, если вы разработчик компонентов, например.

При этом я считаю слишком сложным иметь скин, компонент узла и отдельный класс поведения. Из-за этого я склонен придерживаться шаблона, который они нам дали (Skin и Host Component) для компонентов с скинами. По моему опыту, это усложняет тестирование, но оно таково.

Если мне не нужен SkinnableComponent (поскольку я обычно не создаю компоненты с скином для внешнего использования), я просто использую отдельный шаблон представления (обычно PM) и отказываюсь от шаблона скининга.

...