O'Reilly logo

Professional Cairngorm™ by Jeremy Wischusen

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

4.2. What Does It Look Like?

The interfaces associated with the ModelLocator are found in the com.adobe.cairngorm.model package. The following interfaces are found in this package:

  • IModelLocator: Marker interface used to mark the custom ModelLocator.

  • ModelLocator: Deprecated as of Cairngorm 2.1 and replaced by com.adobe.cairngorm.model.IModelLocator.

The code for the IModelLocator interface is as follows:

package com.adobe.cairngorm.model
{
  public interface IModelLocator
   {
   }
}

No methods are actually defined in the interface. The only purpose of this interface is to allow data typing to mark a class as an instance of a ModelLocator.

Many developers do not even bother implementing the interface in their ModelLocator classes. Such an implementation might look like the following:

package model
{
  import mx.collections.ArrayCollection;
  import com.someproject.vo.UserVo;
  [Bindable]
  public class ModelLocator
  {
    static private var __instance:ModelLocator;
    public var user:UserVO;
    public var items:ArrayCollection=new ArrayCollection();
    public var purchasedItems:ArrayCollection=new ArrayCollection();
    public function ModelLocator()
    {
      if ( modelLocator != null )
     {
        throw new Error( "Only one ModelLocator instance should be instantiated");
     }
    }
    static public function getInstance():ModelLocator
    {
if(__instance == null)
      {
        __instance=new ModelLocator();
      }
      return __instance;
    }
  }
}

In the preceding example you can again see the implementation of the singleton pattern with the private static instance ...

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