robotlegs: J'ai 2 vues et les médiateurs qui ont en commun 1 chose comment puis-je? Séchez-le

StackOverflow https://stackoverflow.com/questions/4111258

  •  29-09-2019
  •  | 
  •  

Question

J'ai 2 vues qui montrent des listes qui utilise ensuite un médiateur pour obtenir des données. mais je veux en quelque sorte DRY donc je n'ai pas à répéter mon moi 2 fois la même chose. comment puis-je faire?

EDIT1 (code):

[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'});
    }

// puis dans mon médiateur

    [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);
    }

tout cela pour une vue-médiateur. maintenant j'ai 2 vue-médiateurs qui font ces tâches. Comment les faire sécher?

Solutions I ont: faire un peu contenant la liste déroulante avec un médiateur qui est à l'écoute de l'événement. dans les grands composants, ils sont à l'écoute d'un signal dans la vue de ce petit composant. rien de plus. il semble très bien, mais je ne pense pas est si grand

Était-ce utile?

La solution

Donc, il y a une fonctionnalité sur les deux points de vue et les médiateurs que vous souhaitez ne pas répéter?

Vous pouvez mettre le code que vous souhaitez réutiliser dans un autre objet et appeler ses méthodes de vos vues multiples et des médiateurs. Ou vous pouvez le mettre dans ancêtre des classes et d'étendre chacune de ces classes à la fois votre vue et votre médiateur.

Les meilleures pratiques serait de faire le premier et non celui-ci.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top