Robotlegs: لدي رأيين ووسطاء يشتركون في شيء واحد كيف يمكنني تجفيفه؟

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

  •  29-09-2019
  •  | 
  •  

سؤال

لديّ عرضان يعرضان قوائم تستخدم ثم وسيطًا للحصول على البيانات. لكني أريد بطريقة ما أن أجففها حتى لا أضطر إلى تكرار نفسي مرتين لنفس الشيء. كيف فعلتها؟

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 من الموديين الذين يقومون بهذه المهام. كيف تجعلها جافة؟

الحلول التي لدي: قم بعمل طريقة عرض صغيرة تحتوي على قائمة القائمة المنسدلة مع وسيط يستمع للحدث. في المكونات الكبيرة يستمعون إلى إشارة في عرض هذا المكون الصغير. لا شيء آخر. يبدو الأمر جيدًا ولكن لا أعتقد أنه رائع جدًا

هل كانت مفيدة؟

المحلول

إذن هناك وظيفة على كل من وجهات النظر والوسطاء الذين ترغب في عدم تكراره؟

يمكنك وضع الرمز الذي تريد إعادة استخدامه في كائن آخر واستدعاء أساليبه من طرق العرض والوسطاء المتعددة. أو يمكنك وضعه في فصول الأجداد وتوسيع كل فئة من هذه الفصول في كل من وجهة نظرك والوسيط الخاص بك.

أفضل الممارسات هي أن تفعل الأول وليس الأخير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top