O'Reilly logo

ActionScript Developer's Guide to PureMVC by Cliff Hall

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 8. Advanced Model Topics

In this chapter, we will have a look at a couple of common Model related issues: Synchronous versus Asynchronous behavior, and reuse of the Model tier.

Handling Synchronous Behavior

In the StoryArchitect application, our Proxy subclasses interacted with the filesystem in a synchronous fashion. That is to say, the result of reading a file is available to the next line of code, and you may begin working with the retrieved data immediately. This is nice because the calling code is usually in the middle of doing something when it makes the call and would probably like to get on with it.

Here is an example from StoryArchitect of a Proxy method and the calling Command using the fetched data immediately as it carries out a use case. The ApplySelectionCommand has to select a Story (a view-related endeavor), but needs to be sure that if the Story is a stub (as it would be from a list), it is fully loaded when placed on the SelectionContext. Notice the ease with which the result is consumed in the Command.

The Story Proxy

Class

StoryProxy.as

Method

loadStory()

Code

 /** * Load a Story. * * If Story is already cached from having been * previously loaded or added, the cached VO will be * returned, otherwise it will be loaded and cached first. * * Optionally allows forced re-caching from disc * (as when user changes are discarded). */ public function loadStory( storyStub:StoryVO, recache:Boolean = false ):StoryVO { // Optionally force loading from disk and recaching if ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required