功能解析
这个类是Observer基类的子类,添加了变量_handler和_source
测试解析
功能:当观察对象变化时,函数处理器返回默认参数
public function whenSourceChangesHandlerSendsArgumentsAsDefault():void
{
var hasChangeDetected:Boolean;
var observe:Observe = new Observe();
//指定函数处理器
observe.handler = function(parameter:String):void{
hasChangeDetected = true;
//arguments[0]的值就是source
assertThat(arguments[0], equalTo("a change"));
}
//注意,赋值后,才会调用handler处理器,source作为handler函数的参数
observe.source = "a change";
Assert.assertTrue(hasChangeDetected);
}
代码解析
package com.adobe.cairngorm.observer
{
public class Observe extends Observer
{
//函数处理器
private var _handler:Function;
//观察对象
private var _source:Object;
//构造函数
public function Observe(){
//为什么构造函数就设置handler是带参数的
sendArgumentsToHandler = true;
}
//函数处理器的get方法
override public function get handler():Function{
return _handler;
}
//设置函数处理器
public function set handler(value:Function):void{
_handler = value;
if (value != null)
{
//如果存在函数处理器,则设置isHandlerInitialized 为真
isHandlerInitialized = true;
if (isHandlerInitialized && isSourceInitialized)
{
callHandler();
}
}
}
//观察对象的get方法
override public function get source():Object
{
return _source;
}
//设置观察对象
public function set source(value:Object):void
{
_source = value;
//如果存在观察对象,isSourceInitialized 为真
isSourceInitialized = true;
if (isHandlerInitialized && isSourceInitialized)
{
callHandler();
}
}
}
}
阅读(1154) | 评论(0) | 转发(0) |