Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ваша реализация MVC (http://www.flasher.ru/forum/showthread.php?t=131588)

Kidd002 24.10.2009 02:03

Ваша реализация MVC
 
Сабж. Кто знаком с MVC, можете описать как вы его реализовывали в своих проектах? Интересует не фреймворки типа pureMVC, а авторские ) разработки.

etc 24.10.2009 15:17

Вложений: 1
Диаграммы рисовать не умею, поэтому красиво не получилось.

ramshteks 24.10.2009 17:13

ыыы) сразу все понятно всем стало))
Если не секрет это что за проект?

etc 24.10.2009 17:17

В Destiny такая схема. Правда там серверов и соединений больше.
Само собой что это просто схема, в реальности контейнеров, вьюверов и контроллеров больше.

Kidd002 24.10.2009 18:03

О! Спасибо, очень интересно.

wvxvw 24.10.2009 18:25

Вот, еще вариант, без схемы, просто пример:
Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<o:DIV
        xmlns:mx="http://www.adobe.com/2006/mxml"
        xmlns:o="http://e4xu.googlecode.com"
        xmlns:t="tests.*"
        width="800" height="600"
        initialized="init()"
        >
        <mx:Script>
                <![CDATA[
                import flash.events.Event;
                import org.wvxvws.mapping.MappingEvent;
                import org.wvxvws.net.AMFService;
                import org.wvxvws.net.ServiceEvent;
 
                private function init():void
                {
                        (cnt0.dispatcher as AMFService).send("getList");
                }
 
                private function handlerA(event:Event):void
                {
                        trace("handlerA", event, event.target);
                        trace((event.target as AMFService).result);
                        trace((event.target as AMFService).fault);
                }
 
                private function handlerB(event:ServiceEvent):void
                {
                        trace("handlerB", event, event.target, event.currentTarget);
                        trace((event.target as AMFService).result);
                        trace((event.target as AMFService).fault);
                }
                ]]>
        </mx:Script>
        <t:TestMap/>
 
        <o:Connector id="cnt0" link="callSomeService">
                <o:Handler type="complete">
                        <mx:Function>handlerA</mx:Function>
                </o:Handler>
        </o:Connector>
 
        <o:Connector id="cnt1" link="callTheService">
                <o:Handler type="fault">
                        <mx:Function>handlerB</mx:Function>
                        <mx:Function>handlerA</mx:Function>
                </o:Handler>
                <o:Handler type="result">
                        <mx:Function>handlerA</mx:Function>
                </o:Handler>
        </o:Connector>
</o:DIV>

Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<o:Map
        xmlns:mx="http://www.adobe.com/2006/mxml"
        xmlns:o="http://e4xu.googlecode.com"
        >
        <o:dispatchers>
                <o:AMFService
                        id="service"
                        baseURL="http://localhost/amfphp/gateway.php"
                        >
                        <o:ServiceMethod
                                id="testMethod"
                                name="getList"
                                >
                                <o:ServiceArguments>
                                        <mx:String>foo</mx:String>
                                        <mx:String>bar</mx:String>
                                </o:ServiceArguments>
                        </o:ServiceMethod>
                </o:AMFService>
        </o:dispatchers>
 
        <o:links>
                <o:Link id="callSomeService" dispatcher="{service}">
                        <mx:String>result</mx:String>
                        <mx:String>complete</mx:String>
                </o:Link>
                <o:Link id="callTheService" dispatcher="{service}">
                        <mx:String>fault</mx:String>
                        <mx:String>complete</mx:String>
                </o:Link>
        </o:links>
</o:Map>

Соответсвующие сорцы тут:
http://code.google.com/p/e4xu/source...wvxvws/mapping

udaaff 24.10.2009 18:34

etc, не мог бы ты описать назначение/функции основных элементов на диаграмме, или хотя-бы какие-нибудь общие пояснения дать. Если бы пример увидеть собранный на основе этой архитектуры, было бы совсем здорово.

etc 24.10.2009 18:56

Назначение всех элементов очевидно, Controller — контролировать, принимать данные, создавать данные, вьюверы и т. п., Data/DataContainer/DataBase — хранить эти данные, слать события об изменении, View — соответственно отображать эти данные, слать события. Скажем, на этой архитектуре работает http://vkontakte.ru/app1641048_1234202
Плюс ещё пара игрушек, ну и Destiny само собой.

koIIImarik 24.10.2009 19:04

Было бы интересно узнать от автора, почему он не стал пользоваться pureMVC?

Kidd002 24.10.2009 19:07

Потому что я сейчас пользуюсь pureMVC и он мне не нравится.


Часовой пояс GMT +4, время: 16:05.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.