सबसे अच्छा सवाल है। दूसरा, इससे कोई फर्क नहीं पड़ता, बहुत कुछ। मेरी निजी वरीयता लगभग हमेशा प्रस्तुतकर्ता को तार और दृश्य में देखें।
public class SomePresenter
{
public ShowContactView(IContactView view)
{
IContact model = new Contact();
new ContactPresenter(model, view);
view.Show();
}
}
public class AnotherPresenter
{
public ShowContactView(IContactView view)
{
IContact model = new Contact();
new ContactPresenter(model, view);
view.Show();
}
}
public class YetAnotherPresenter
{
public ShowContactView(IContactView view)
{
IContact model = new Contact();
new ContactPresenter(model, view);
view.Show();
}
}
public partial class ContactView : Form, IContactView
{
public ContactView()
{
InitializeComponent();
}
}
इस के लिए
:
इस परिदृश्य की तुलना करें
public class SomePresenter
{
public ShowContactView(IContactView view)
{
view.Show();
}
}
public class AnotherPresenter
{
public ShowContactView(IContactView view)
{
view.Show();
}
}
public class YetAnotherPresenter
{
public ShowContactView(IContactView view)
{
view.Show();
}
}
public partial class ContactView : Form, IContactView
{
public ContactView()
{
InitializeComponent();
new ContactPresenter(new Contact(), this);
}
}
आप देख सकते हैं उत्तरार्द्ध बहुत कम कोड दोहराव है। बेशक यह मूर्खतापूर्ण नकल है या आप कह सकते हैं कि आप साझा कार्यक्षमता में साझा कार्यक्षमता को स्थानांतरित कर सकते हैं, लेकिन आपको बिंदु मिल गया है, यह सिर्फ एक उदाहरण है .. यही वह समय है जब आपके आवेदन के कई हिस्सों में तत्काल दृश्य होना होगा।
इसके अलावा, प्रेजेंटर को देखने के व्यू का लाभ यह है कि आपको केवल अपने व्यू प्रोजेक्ट में प्रेजेंटर को संदर्भित करने की आवश्यकता है, ताकि आप विभिन्न यूआई अनुप्रयोगों में एक ही प्रेजेंटर का पुनः उपयोग कर सकें। अन्यथा आपको प्रेजेंटर में प्रत्येक व्यू प्रोजेक्ट को संदर्भित करने की आवश्यकता होगी ..
लेकिन यह देखना महत्वपूर्ण है कि अलग-अलग मॉडल आपके मामले में कैसे फिट होते हैं। ईमानदार होने के लिए, there are more possibilities even. See this duplicate question.
Winforms के बारे में क्या? – adriaanp