PureMVC 학습 노트 1
2122 단어 Flex
1. View는 Mediator 객체에 대한 참조를 저장합니다.Mediator 객체에서 구체적인 뷰 구성 요소(View Component, 예를 들어 Flex의 DataGrid 구성 요소)를 조작합니다. 이벤트 감청기를 추가하고 Notification을 보내거나 수신하여 뷰 구성 요소의 상태를 직접 바꾸는 것을 포함합니다.이렇게 하면 보기와 제어의 논리를 분리할 수 있다.View로 Mediator를 등록하면 Mediator의listNotifications 방법이 호출되어 Mediator 객체가 관심을 가지는 모든 Notification을 배열로 반환합니다.이후 시스템의 다른 역할이 같은 이름의 Notification (알림) 을 보낼 때, 이 알림에 관심을 가진 Mediator는handle Notification 방법을 호출하고 Notification을 매개 변수로 방법에 전달합니다.
public function registerMediator( mediator:IMediator ) : void
{
// do not allow re-registration (you must to removeMediator fist)
if ( mediatorMap[ mediator.getMediatorName() ] != null ) return;
// Register the Mediator for retrieval by name
mediatorMap[ mediator.getMediatorName() ] = mediator;
// Get Notification interests, if any.
var interests:Array = mediator.listNotificationInterests();
// Register Mediator as an observer for each of its notification interests
if ( interests.length > 0 )
{
// Create Observer referencing this mediator's handlNotification method
var observer:Observer = new Observer( mediator.handleNotification, mediator );
// Register Mediator as Observer for its list of Notification interests
for ( var i:Number=0; i<interests.length; i++ ) {
registerObserver( interests[i], observer );
}
}
// alert the mediator that it has been registered
mediator.onRegister();
}
2. Controller는 모든 Command 및 Notification 매핑을 저장합니다.Command는 무상태이며 필요할 때만 생성됩니다.
public function registerCommand( notificationName : String, commandClassRef : Class ) : void
{
if ( commandMap[ notificationName ] == null ) {
view.registerObserver( notificationName, new Observer( executeCommand, this ) );
}
commandMap[ notificationName ] = commandClassRef;
}
public function executeCommand( note : INotification ) : void
{
var commandClassRef : Class = commandMap[ note.getName() ];
if ( commandClassRef == null ) return;
var commandInstance : ICommand = new commandClassRef();
commandInstance.execute( note );
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
⭐️ Flex & OpacityThe flex CSS shorthand property sets how a flex item will grow or shrink to fit the space available in its flex containe...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.