2010-11-06 3 views
0

У меня есть 2 представления, которые показывают списки, которые затем используют посредника для получения данных. но я хочу каким-то образом сушить его, поэтому мне не нужно повторять свое «я» 2 раза за одно и то же. как мне это сделать?robotlegs: У меня есть 2 вида и медиаторы, которые имеют общее 1 вещь, как я могу его высушить?

EDIT1 (код):

[SkinPart(required="false")] 
public var WOListsDDL:DropDownList; 
    // in partadded 
case WOListsDDL: 
    // when the selected list is changed in the lists drop down list 
    WOListsDDL.addEventListener(IndexChangeEvent.CHANGE, _WOListsDDL_changeHandler); 
    WOListsDDL.dataProvider = new ArrayCollection(); 
    WOListsDDL.labelField = 'title'; 
break; 
    // 

    protected function _WOListsDDL_changeHandler(event:*):void{ 
     _debug('List selection changed handler.'); 
     _getContentsForList(); 
    } 
    protected function _getContentsForList():void{ 
     _debug('Getting list items.'); 
     getItemsSignal.dispatch({key: getSelectedList()._key, itemType: 'item'}); 
    } 
    public var getItemsSignal:GetItemsSignal = new GetItemsSignal(); 

    override public function mediatorComplete():void{ 
     getItemsSignal.dispatch({key: tottysAuth.getCurrentUser()._key, itemType: 'list'}); 
    } 

// то в моем медиатора

[Inject] public var getItemsSignal:GetItemsSignal; 
    override public function onRegister():void{ 
     // view listeners 
     view.getItemsSignal.add(_getItemsSignalHandler); 
    } 
    protected function _getItemsSignalHandler(input:Object):void{ 
     getItemsSignal.dispatch(input); 
    } 

все это для одного вида-посредника. теперь у меня есть 2 медиа-посредника, которые выполняют эти задачи. Как сделать их сухими?

Решения, которые у меня есть: Сделайте небольшой снимок, содержащий раскрывающийся список с медиатором, который слушает событие. в больших компонентах они слушают сигнал с точки зрения этого небольшого компонента. больше ничего. кажется неплохо, но я не думаю, что это так здорово

+0

Вы можете связать код примера? – rwilliams

+0

yes, check it out my edit1 –

+0

вы хотите, чтобы два представления вводились одному посреднику? – chchrist

ответ

0

Итак, есть функциональность как на представлениях, так и на посредниках, которые вы бы не хотели повторять?

Вы можете поместить код, который хотите повторно использовать в другом объекте, и вызвать его методы из нескольких видов и посредников. Или вы можете поместить его в классы предков и расширить каждый из этих классов как в своем представлении, так и в вашем посреднике.

Лучшей практикой было бы сделать первое, а не последнее.