के लिए आवश्यक युग्मन सरल उदाहरण को कम करना कॉलेज से बाहर है और कुछ कोड में आ रहा है जहां मुझे युग्मन को कम करने की आवश्यकता है। लेकिन मैं पूरी तरह से सभी अवधारणाओं को समझ नहीं पा रहा हूं और मेरी मदद करने के लिए एक साधारण उदाहरण चाहूंगा। शुरू करने के लिए मेरे पास एक फ़ील्ड, नाम के साथ एक व्यक्ति वर्ग है। मेरे पास कुछ पाठ को जोड़ने के लिए उस कक्षा के भीतर एक विधि है।शुरुआती
मुझे पता है कि यह एक मूर्ख उदाहरण है, और अधिकांश लोग कभी भी इस तरह के परिस्थितियों में युग्मन को कम करने पर विचार नहीं करेंगे, लेकिन मुझे केवल एक सरल उदाहरण चाहिए जो मुझे कोड और अवधारणाओं को पूरी तरह समझने में मदद करे।
मुख्य विंडो के पीछे कोड में मैंने एक टेक्स्ट बॉक्स और एक बटन डाला। जब खिड़की लोड होती है तो यह व्यक्ति x नाम फ़ील्ड का वर्तमान मान दिखाती है। जब बटन क्लिक किया जाता है, तो x.PersonAddText विधि को कॉल किया जाता है। वर्तमान में इस उदाहरण में युग्मन 8 पर गणना की गई है। बटन के लिए 3 के साथ ईवेंट और विंडो लोड किए गए ईवेंट के लिए 3।
क्या कोई तरीका है, इस उदाहरण का उपयोग करके हम इसे या तो दोनों के लिए इससे कम कर सकते हैं।
नीचे अपने सभी कोड है:
मेरे व्यक्ति कक्षा:
public class Person
{
//Fields
private string name;
//Properties
public string Name
{
get { return name; }
set { name = value; }
}
//Constructors
public Person()
{
name = "joe";
}
//Methods
public string PersonAddText(string text)
{
return name += " - " + text;
}
//Interfaces (or additional code below here please to aid understanding)
}
मेरे कोड के पीछे:
Person x = new Person();
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
txtname.Text = x.Name;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
txtname.Text = x.PersonAddText(txtname.Text);
txtname.Text = x.Name;
}
मेरे सरल XAML:
<Grid>
<TextBox Name="txtname" Margin="12,12,12,0" Height="23" VerticalAlignment="Top" />
<Button Content="Add Text" Margin="12,41,12,0" Name="button1" VerticalAlignment="Top" Click="button1_Click" />
</Grid>
मैं कर रहा हूँ बड़ी कठिनाई unde इंटरनेट के चारों ओर ट्यूटोरियल को समझाने के लिए यह समझाओ।
- सेवा लोकेटर
- निर्भरता इंजेक्शन
- उलट: मैं वहाँ यह करने के लिए 3 तरीके हैं जो देखते हैं से (यह संभव हो तो, इन तीनों का एक उदाहरण के लिए परिवर्तित ऊपर मेरी कोड के लिए अच्छा होगा) नियंत्रण (आईओसी)
article सामान मैं पढ़ लिया है समझाने का उत्कृष्ट है, लेकिन के रूप में वह डेटाबेस कनेक्शन तार के साथ वीबी और ASP.Net उपयोग कर रहा है उदाहरण मेरे लिए प्रासंगिक नहीं हैं। यह पूरी तरह से विपरीत है जो मुझे चाहिए, और मैं इस बारे में सोचना नहीं चाहता कि कोड का अनुवाद कैसे करें, अवधारणाओं को सीखते हुए, और इस बारे में भी सोचें कि इसे प्रासंगिक कुछ कैसे लागू करें। हालांकि उदाहरण अच्छा है, यह बहुत अधिक है, और मैं वास्तव में किसी भी अतिरिक्त मदद की सराहना करता हूं।
इतिहास संपादित करें: वर्तनी वर्तनी। मेरे प्रश्न को स्पष्ट करने के लिए निम्नलिखित जोड़ा गया:
मैं युग्मन और सहवास के पीछे सिद्धांत को समझता हूं और आपको एक को कम क्यों करना चाहिए और दूसरे को क्यों बढ़ाया जाना चाहिए। लेकिन हमें कभी भी कॉलेज में किसी भी उदाहरण को कोड नहीं करना पड़ा। साथ ही, कॉलेज में शामिल नहीं होने पर, मैं इंटरफेस को समझता हूं। हालांकि, मैं नहीं समझता कि युग्मन को कम करने के लिए उनका उपयोग कैसे किया जाए।
the article I refrenced above पर एक लिंक जोड़ा गया।
संपादित करें 2:
public interface IPerson
{
string Name { get; set; }
string PersonAddText(string text);
}
public class Person : IPerson
{
//The code from the person class above
}
कैसे मैं अब इस MainWindow कोड में पीछे प्रयोग करते हैं: अब तक मैं अब क्या मिल गया है निम्नलिखित है?मैं अनुमान लगा रहा हूँ मैं
IPerson x = new Person();
साथ
Person x = new Person();
बदलना चाहिए यह सही है, और यदि हां, वहाँ कुछ और मैं क्या करने की जरूरत है। कारण मैं पूछता हूं क्योंकि मुझे अभी भी दृश्य स्टूडियो द्वारा रिपोर्ट किए गए कोड युग्मन आंकड़ों में कोई कमी नहीं दिखाई दे रही है (वास्तव में, यह इसे मुख्य विंडो कोड पर 1 तक बढ़ा देता है)।
क्या _exactly_ आप समझ में नहीं आता? आपको किस अवधारणा के साथ कठिनाइयों का सामना करना पड़ रहा है? – Oded
मुझे पता है कि सिद्धांत में कूपलिंग और एकजुटता का क्या अर्थ है। लेकिन मैं समझ नहीं पा रहा हूं कि इसे कैसे कोड करें। खासकर जब हमने कभी कॉलेज में इंटरफेस को कवर नहीं किया (हाँ, मुझे पता है, महान कॉलेज)। मैं इंटरफ़ेस भी समझता हूं, लेकिन मुझे नहीं पता कि कूपलिंग कम करने के लिए उनका उपयोग कैसे किया जाए। –