ActionScript 3.0 Design Patterns

(Chris Devlin) #1

300 | Chapter 8: Observer Pattern


Feel free to change the text in the various “headlines” forThe Daily Bugle.


Playing the Bugle


Now that we’ve set up an Observer design pattern simulating subscription to a news-


paper we’ve calledThe Daily Bugle, it’s time to test the subscription and news distri-


bution process. Our consumer testing class needs to have only a few elements:



  • A concrete subject

  • Subscribers (concrete observers)

  • Daily news (a change of state)

  • Unsubscribe (get off the observer list)


This time around, we’ll need to name all of our subscribers, and we can expect more


information output, but the structure is essentially unchanged. Example 8-14 con-


tains the necessary code that needs to be saved asBugleSubscribe.as.


//Add states to update parameter
public function update(news:String,sports:String,stocks:Number,
entertainment:String):void
{
this.news=news;
this.sports=sports;
this.stocks=stocks;
this.entertainment=entertainment;
}
}
}


Example 8-14. BugleSubscribe.as


package
{
//Test Observer Application
import flash.display.Sprite;
public class BugleSubscribe extends Sprite
{
public function BugleSubscribe( )
{
var bigNews:ConcreteSubject=new ConcreteSubject( );
var larry:ConcreteObserver=new ConcreteObserver("Larry");
var mo:ConcreteObserver=new ConcreteObserver("Mo");
var curly:ConcreteObserver=new ConcreteObserver("Curly");
var shemp:ConcreteObserver=new ConcreteObserver("Shemp");
bigNews.subscribeObserver(larry);
bigNews.subscribeObserver(mo);
bigNews.subscribeObserver(curly);
bigNews.subscribeObserver(shemp);


Example 8-13. ConcreteObserver.as (continued)

Free download pdf