robotlegs: у меня есть 2 точки зрения и посредники, которые имеют одну общую черту: как я могу СУШИТЬ это?
У меня есть 2 представления, которые показывают списки, которые затем используют посредник для получения данных. но я хочу каким-то образом высушить его, чтобы мне не приходилось повторять себя 2 раза для одного и того же. как мне это сделать?
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 вида-посредников, которые выполняют эти задачи. Как сделать их сухими?
Решения, которые у меня есть: сделать небольшое представление, содержащее выпадающий список с посредником, который прослушивает событие. в больших компонентах они слушают сигнал в виде этого маленького компонента. ничего более. это выглядит довольно хорошо, но я не думаю, что это так здорово
1 ответ
То есть есть функциональность как в представлениях, так и в посредниках, которые вы бы не хотели повторять?
Вы можете поместить код, который вы хотите использовать повторно, в другой объект и вызывать его методы из нескольких представлений и посредников. Или вы можете поместить его в классы предков и расширить каждый из этих классов как в вашем представлении, так и в вашем посреднике.
Лучшая практика будет делать первое, а не второе.