2017-03-29 6 views
6

तो मेरे पास एक प्रस्तुतकर्ता है जो पहले से ही किसी गतिविधि से जुड़ा हुआ है। पुस्तक कहती है कि एक प्रस्तुतकर्ता को एक दृश्य से बंधना चाहिए। लेकिन अब मैं कुछ टुकड़े और कस्टम विचारों को जोड़ रहा हूं। मैं एक दृश्य के रूप में भी एक खंड पर विचार कर रहा हूँ। कस्टम विचारों में उनमें थोड़ी-थोड़ी तर्क होगी। पाठ्यक्रम और कस्टम विचार दोनों ही मेरी गतिविधि में निहित हैं।एंड्रॉइड एमवीपी - क्या मेरे पास कस्टम दृश्यों और टुकड़ों के लिए एकाधिक प्रस्तुतियां हो सकती हैं

मेरा सवाल है, क्या मुझे एक ही प्रस्तुतकर्ता को टुकड़े और कस्टम विचारों में दोबारा उपयोग करना चाहिए या प्रत्येक दृश्य को अपना प्रस्तुतकर्ता प्राप्त करना चाहिए? मुझे एहसास है कि यह सभी राय आधारित है, लेकिन मैं कोड को साफ करने और रखने के लिए सबसे अच्छा तरीका चाहता हूं।

यदि मेरे पास इन सभी कुछ के लिए एक प्रस्तुति है तो फिर प्रस्तुतकर्ता उपयोगों में इंटरफ़ेस में कई कॉलबैक विधियां होंगी। इस बीच यदि मैंने विपरीत किया और प्रत्येक दृश्य के लिए एक प्रस्तुतकर्ता बनाया तो इसे पढ़ना आसान हो सकता है लेकिन मैं इसका परीक्षण कैसे करूं?

उत्तर

5

View (Activity) basepresenter को लागू करने के लिए कई Presenters हो सकता है प्रत्येक दृश्य के लिए प्रस्तोता तैयार करना है। Activity के लिए एकाधिक CustomViews होने के मामले में, आपके पास प्रत्येक CustomView प्रति एक विशाल Presenter या Presenter हो सकता है। यह इस पर निर्भर करता है:

  1. सभी CustomViews तो शेयर एक ही जरूरत है, एक Presenter सभी CustomViews के लिए पर्याप्त है। फिर भी Presenter's सीमा के लिए दो विकल्प हैं:

    • PresenterActivityScope है। ActivityPresenter का उपयोग करता है और Presenter से कॉल किया जाता है। फिर आदेश भेजता है, CustomViews
    • Presenter में व्यूस्कोप है। प्रत्येक CustomView बनाता है और नष्ट कर देता है एक ही Presenter

    CustomViews साझा नहीं एक ही जरूरतों के मामले में, एक Presenter और ViewInterface होने, वे सब CustomViews जरूरतों के तरीकों में शामिल होंगे, इसलिए प्रत्येक CustomViewViewInterface में सभी घोषित तरीकों को लागू करने की है, छोड़ कुछ खाली

  2. यदि CustomViewsPresenter पर अलग-अलग ज़रूरतें और विधि कॉल हैं, तो उनके पास Presenter होना चाहिए।

  3. यदि CustomViews की अलग-अलग ज़रूरतें हैं और कुछ सामान्य ज़रूरतें हैं, तो वे Presenter में सामान्य आवश्यकताएं साझा करते हैं, विशिष्ट आवश्यकताओं को अपने Presenters में साझा करते हैं। उदाहरण इसके लिए: ActivityOne में CustomViewOne और CustomViewTwo है। CustomViews दोनों के लिए PresenterFeedPresenter हो सकता है (दोनों कस्टम व्यूज़ फ़ीड फीड सूची पर विचार कर सकते हैं)। फिर CustomViewOne में CustomPresenter1 और CustomViewTwo उनके विशिष्ट आवश्यकताओं के लिए CustomPresenter2 होगा।
2

सर्वश्रेष्ठ अभ्यास, एक basepresenter बनाने तो

+0

बीटीडब्ल्यू, यह अब तक का सबसे अच्छा तरीका था। – j2emanue

संबंधित मुद्दे

 संबंधित मुद्दे