Swiz Framework
Июль 26th, 2009 написал injun #576871
Наткнулся тут на обсуждение нового (для меня) flex-фреймуорка - Swiz Framework. Идеи, которые вложили в проект Крис Скотт, Сонке Ройдэ и Бен Клинкинбирд вполне заслуживают изучения.
Во-первых, Swiz использует принцип “инверсия управления” (IoC) – то есть уменьшения связанности1, типичный пример которого выглядит так: вот обычный код:
public class serverFacade { public Object respondToRequest(Object pRequest) { if(businessLayer.validateRequest(pRequest)) { DAO.getData(pRequest); return aspect.convertData(pRequest); } else { return null; } } }
Который вполне превращается и в такую вариацию:
public class serverFacade { public Object respondToRequest(Object pRequest) { return DAO.getData(pRequest); } }
Так вот, суть этого принципа в том, что вы снабжаете ваши “пазлы” метаданными, а система – в данном случае Swiz – соберет все в единую “картину” – то есть приложение. И сделает это весьма быстро. А это очень удобно, когда вам надо собрать большие и сложные компоненты или системы, состоящие из множества классов, да и еще используя при этом особенности виртуальной машины ActionScript и стандартных компиляторов.
//Надеюсь, я понятно изъясняюсь? А то бывает, что я начинаю слишком заумно говорить и сам перестаю улавливать суть, к чему я всё веду.
Ещё одним принципом на котором держится этот flex-фреймуорк является “внедрение зависимости” (DI) – специфичной формы IoC, суть которой – получение необходимой зависимости путём изменения порядка связи.
Приятной особенностью Swiz является отсутствие ручных вызовов addEventListene() и removeEventListener() – вы просто пишите стандартный метод, указываете параметр, а фреймуорк сам определит какие методы вызывать, а также какие параметры передавать. И это без каких-либо специфичных событий – только обычные flex-события!
И это при том, что Swiz конфигурируется одним-единственным тегом, приблизительно вот так:
<swiz:SwizConfig
strict="true"
mediateBubbledEvents="true"
eventPackages="com.benclinkinbeard.events"
viewPackages="com.benclinkinbeard.views"
beanLoaders="{ [ Beans ] }" />
Пример маленького тестового приложения вы можете глянуть вот тут (и код, разумеется, его посмотреть).
Отлично и то, что Swiz дружит Flex 2/3/4, прекрасно чувствует себя с AIR, да и вообще, крайне прост в освоении.
>
RSS-фид новых сообщений

Спасибо, за mloc, получил много экспириенс и левел ап
@I3adim: сам получил тоже самое. Очень интересная разработка!
Меня слегка удивляет количество IoC фреймворков на AS. Встречалось, навереное, не меньше пары десятков.
@Ivan Azarov: так это же хорошо! Полезно иметь хороший выбор