2011-03-29 2 views
1

Cairngorm 아키텍처에 따르면 각 서비스의 모든 명령 클래스에는 항상 오류 처리기가 있습니다.Cairngorm 오류 처리기

모든 서비스에 대해 오류 처리기 이벤트를 처리하기 위해 단일 클래스를 만드는 방법.

+0

하지만 사실은 상대적인 명령 클래스에서 결과를 처리하지만 전역 클래스에서 오류 처리기를 처리하고 싶습니다. 나는 우리가 그것을 성취 할 수있는 방법을 정확히 얻지 못했습니다. 아무도 나에게 모범을 보일 수 있을까? – Guest

답변

1

다른 모든 클래스를 확장하는 기본 클래스를 만들고 거기에 결함 핸들러를 넣으십시오. 예를 들면 : FaultHandlerCairngormCommand이 확장 SequenceCommand는

[BaseCommand.as]

[MyCommand.as] "항상 오류 처리기를 가진"으로

// -- no need to implement onFault in sub-class 
public class MyCommand extends BaseCommand 
{ 
    public function execute(event:Event):void 
    { 
     remoteObjectDelegate.doYourServerOperation(this); 
    } 
    override public function result(data:Object):void 
    { 
     trace("happily handling the data"); //without this override an error will be thrown so the developer will know to correct 
    } 
} 
+0

하지만 사실은 상대적인 명령 클래스에서 결과를 처리하고 싶지만 전역 클래스에서 오류 처리기를 처리하고 싶습니다. – Guest

1

, 당신에 의해 뜻가는 IResponder를 구현 인터페이스를 구현할 때와 마찬가지로 계약

다른 모든 명령 클래스가 확장하는 기본 명령 클래스를 작성할 수 있습니다. 기본은 온 오류 처리기를 구현할 수 있으며 다른 모든 하위 클래스는 선택적으로이를 재정의 할 수 있습니다.

public class BaseCommand implements ICommand 
{ 
    public function execute(event:Event):void 
    { 

    } 

    public function onFault(event:Event):void 
    { 

    } 
} 

// -- no need to implement onFault in sub-class 
public class MyCommand extends BaseCommand 
{ 
    public function execute(event:Event):void 
    { 

    } 
}