i would recommend the o'reilly design patterns book - it gives a very simple
mvc triad and then expands it with other patterns (like using the composite
pattern for nesting views)

i did find a video that did a good job of explaining a quick mvc triad but
it didn't go into detail about why it is set up that way and i can't find it
right now

hope this helps
a


On Tue, Jan 19, 2010 at 6:48 PM, Cor <c...@chello.nl> wrote:

> Hi Jason,
>
> I hope you don't mind me addressing you of list.
> If you do, please ignore this message and I apologize to you!
>
> I am trying to grasp the MVC pattern, but it is very hard for me.
> I am looking for a very simple example which explains the way it works.
> If you can help me with this, I would be very greatful.
>
> Thanks in advance.
> Kind regards
> Cor van Dooren
> The Netherlands
>
>
> -----Original Message-----
> From: flashcoders-boun...@chattyfig.figleaf.com
> [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Merrill,
> Jason
> Sent: dinsdag 19 januari 2010 17:35
> To: Flash Coders List
> Subject: RE: [Flashcoders] Using MVC for a site framework
>
> This is my opinion, I'm sure others will have their own that may differ
> (and probably recommend you check out some frameworks  - though that can
> be a lot to tackle) :  the controller would listen to the model to know
> when the data is ready and available.  It would then tell the view to
> start building.  The main class would hold the references to the model,
> view, controller, but would not command any classes to do anything
> really.  You could have the view listen to the model as well and skip
> the controller doing it, but I like the view to be more decoupled than
> that.  I usually try and keep most listeners in the controller where
> possible, though many end up in the view, depending on the situation.  I
> never have listeners in the model though, only events that are
> dispatched.
>
> I actually have the model start and do it's own XML loading, but you
> could have the controller tell it to do that, just seems like an
> unnecessary step.
>
> Another thing I do is have a main class called MVC that extends Sprite
> or DisplayObject which initializes the model, view, controller, in
> order, dispatches an event when all three are initialized, and provides
> access to each via a singleton implementation.  It allows me to access
> any part of a model, view, controller from any other part just by
> calling MVC.instance.  Then it's just var _mvc:MVC = MVC.instancel; then
> _mvc.model.myprop or _mvc.view.update() or whatever. That class looks
> like this:
>
> package mvc
> {
>        import events.MVCEvent;
>        import events.view.ViewEvent;
>        import events.controller.ControllerEvent;
>        import events.model.ModelEvent;
>        import mvc.controller.Controller;
>        import mvc.model.Model;
>        import mvc.view.View;
>        import flash.display.Sprite;
>        /**
>         * ...
>         * @author Jason Merrill - Bank of America
>         */
>        public class MVC extends Sprite
>        {
>                public var view:View;
>                public var model:Model;
>                public var controller:Controller;
>
>                private static var _instance:MVC;
>
>                public function MVC()
>                {
>                        if ( _instance != null )
>                        {
>                throw new Error( "Only one MVC instance should be
> instantiated.  Use MVC.instance instead." );
>                        }
>            else
>                        {
>                                _instance = this;
>                        }
>                }
>
>                public function initialize():void
>                {
>                        model = new Model();
>                        view = new View();
>                        controller = new Controller();
>
>                        model.addEventListener(ModelEvent.INITIALIZED,
> onModelInitialized);
>
> controller.addEventListener(ControllerEvent.INITIALIZED,
> onControllerInitialized);
>                        view.addEventListener(ViewEvent.INITIALIZED,
> onViewInitialized);
>
>                        model.initialize();
>                }
>
>                private function
> onModelInitialized(event:ModelEvent):void
>                {
>
> model.removeEventListener(ModelEvent.INITIALIZED, onModelInitialized);
>                        view.initialize();
>                }
>
>                private function onViewInitialized(event:ViewEvent):void
>                {
>                        addChild(view);
>                        view.removeEventListener(ViewEvent.INITIALIZED,
> onViewInitialized);
>                        controller.initialize();
>                }
>
>                private function
> onControllerInitialized(event:ControllerEvent):void
>                {
>
> controller.removeEventListener(ControllerEvent.INITIALIZED,
> onControllerInitialized);
>                        dispatchEvent(new
> MVCEvent(MVCEvent.INITIALIZED));
>                }
>
>                public static function get instance():MVC
>                {
>                        if ( _instance == null )
>                        {
>                throw new Error( "MVC singleton instance not created
> yet." );
>                        }
>            return _instance;
>                }
>        }
>
> }
>
>
> Jason Merrill
>
>  Bank of  America  Global Learning
> Learning & Performance Soluions
>
> Join the Bank of America Flash Platform Community  and visit our
> Instructional Technology Design Blog
> (note: these are for Bank of America employees only)
>
>
>
>
>
> -----Original Message-----
> From: flashcoders-boun...@chattyfig.figleaf.com
> [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of allandt
> bik-elliott (thefieldcomic.com)
> Sent: Tuesday, January 19, 2010 11:09 AM
> To: Flash Coders List
> Subject: [Flashcoders] Using MVC for a site framework
>
> Hi guys
>
> I'm currently feeling my way through the o'reilly design patterns book
> and
> am going through the mvc design pattern as a way of dealing with
> (micro)site
> structures - dealing with opening and closing pages, loading data etc
> but i
> have a couple of questions that you guys will probably be able to
> answer...
>
> i have a config xml file that points to the data xml, site css and
> fonts.swf. I take it that the controller should have the responsibility
> of
> loading those files and storing the results in the model. However if i
> include the site structure in the data xml as i would usually do, which
> part
> of the triad should be instantiating the views to create the pages? The
> book
> is set up that the Main.as class would be instantiating the views and
> creating the site structure but that doesn't fit if the controller is
> loading the xml files into the model.
>
> I would guess that the controller would trawl the xml and instantiate
> the
> page views and add them to the model but i'm not 100% on this
>
> I'd really appreciate your time on this matter as I'd like to build a
> set of
> classes that work with more than one project
>
> thanks
> a
> _______________________________________________
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.com
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> _______________________________________________
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.com
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 9.0.730 / Virus Database: 270.14.149/2631 - Release Date: 01/18/10
> 17:56:00
>
> _______________________________________________
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.com
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to