Есть так много причин, по которым использование фреймворка MVC в Flex скачет, но выбор правильного кажется сложным. Мне интересно, что вы все думаете о своем опыте реализации того или иного (или другого).
Сэм
Есть так много причин, по которым использование фреймворка MVC в Flex скачет, но выбор правильного кажется сложным. Мне интересно, что вы все думаете о своем опыте реализации того или иного (или другого).
Сэм
Вопрос уже задавался, однако, поскольку вы спрашиваете конкретно о преимуществах Cairngorm и PureMVC, эти мои мысли:
И PureMVC, и Cairngorm затрудняют написание тестируемого кода. В основном это связано с использованием глобальных переменных, которые плотно связывают код вашего приложения, что затрудняет изоляцию какой-либо части для тестирования. Это больше относится к Cairngorm, чем к PureMVC, но оба они довольно плохи.
PureMVC более агрессивен, чем Cairngorm (это означает, что ваш код сильно зависит от фреймворка, например, вам нужно создать подкласс / реализовать классы / интерфейсы фреймворка), но это не означает, что Cairngorm не является.
Cairngorm полон антишаблонов, таких как интенсивное использование глобальных переменных, PureMVC скрывает худшие части себя.
PureMVC является анти-Flex, Cairngorm просто не использует многие из хороших частей Flex. Под этим я подразумеваю, что PureMVC заново изобретает многие вещи, которые уже есть у Flex, потому что он хочет быть независимым от платформы, а из-за своей архитектуры, в частности посредников, усложняет использование привязок в полную силу. Cairngorm просто пропускает такие вещи, как всплытие событий, и вместо этого выбирает решения, включающие глобальную переменную.
Короче говоря, Cairngorm - это VisualBasic Flex, он работает, но научит вас множеству вредных привычек. PureMVC не так уж плох, просто он не очень хорошо подходит для написания приложений Flex.
Я думаю, вам следует обратить внимание на Mate, который полностью использует потенциал Flex, но он не построен. вокруг глобальных переменных. Вместо этого он помогает вам писать слабо связанный, тестируемый, повторно используемый и обслуживаемый код без тяжелых и ненужных зависимостей от платформы, которые вы видите в других платформах приложений.
Если вам по какой-то причине не нравится Mate, попробуйте Swiz, что является большим улучшением. по сравнению с Cairngorm, но все еще имеет некоторые странные предпочтения в использовании глобальных переменных для центральной диспетчеризации событий (что совершенно странно, учитывая, что одна из задач структуры - избегать злых глобальных переменных Cairngorm).