The dependency with this is that any changes to the UI - additional views being added or removed, requires that the controller be changed too. Any change to a view could cause the controller to become broken.

For this reason, I would say it's bad practice.

Not necessarily so.
But.. you'd use an interface, which the view implements.
In which case you'd probably be talking about a Presenter rather than a 
Controller :)

pseudo code:

// PRESENTER
private var view:IView;
public function ViewPresenter(v:IView) {
   view = v;
   // add listeners and whatnot..
}

onSomeEventHandler(event:SomeEvent):void {
   view.update();
}

================================

// VIEW
public class MyView implements IView {
   public function update()(// do stuff);
}

================================

// VIEW INTERFACE
public interface IView {
   public function update();
}

GWT uses this kind of architecture:
http://code.google.com/intl/nl/webtoolkit/articles/mvp-architecture.html
http://code.google.com/intl/nl/webtoolkit/articles/mvp-architecture.html#binding

http://code.google.com/intl/nl/webtoolkit/articles/mvp-architecture-2.html

http://www.google.com/intl/nl/events/io/2009/sessions/GoogleWebToolkitBestPractices.html

So in GWT I usually have:

(only 1) AppController
(several) Presenter + View + Model triads

A view dispatches events to which the presenter listens.
Presenter talks to view via its interface.

View doesn't know the presenter, Presenter doesn't know the view, only its interface.

regards,
Muzak

----- Original Message ----- From: "Paul Andrews" <p...@ipauland.com>
To: <flashcoders@chattyfig.figleaf.com>
Sent: Monday, March 05, 2012 3:11 PM
Subject: Re: [Flashcoders] MVC style Correction


The dependency with this is that any changes to the UI - additional views being added or removed, requires that the controller be changed too. Any change to a view could cause the controller to become broken.

For this reason, I would say it's bad practice.


On 05/03/2012 13:57, Merrill, Jason wrote:
tutor mentions Controller can update View, but that example is not included.
If anyone can give me a little example of how that is done in MVC, don't 
hasitate
In about the simplest form:


//In the controller:

onSomeEventHandler(event:SomeEvent):void
{
_someViewInstance.update();
}


//In the view:

public function update():void
{
//Do stuff to change the view
}

Hope that helps.


  Jason Merrill

_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to