इसके पीछे मूल विचार नियंत्रण निर्माण है।
ग्राहक कॉल को प्रक्रिया
object Factory.GetObject(Spec spec)
अब कारखाने एक अमूर्त है कि उनके कोड में वर्ग कंस्ट्रक्टर्स में hardcoding/पाक से ग्राहकों को रोकता है। इसके बजाय वे कारखाने में बुलाते हैं, फैक्ट्री स्पेस के आधार पर बनाने के लिए वस्तु के सही उप-वर्ग का निर्णय लेती है।
यह दृष्टिकोण अधिक विस्तृत और लचीला बदलने के लिए है - भविष्य में,
- आप युक्ति के लिए एक नया समायोजन पैरामीटर जोड़ने और कारखाने विधि के भीतर इसे संभाल LatestAndGreatestSubclass
- वापस जाने के लिए कर सकता है आप किसी मौजूदा ऑब्जेक्ट को सुधार सकते हैं और पिछले सबक्लास के v2 को वापस कर सकते हैं या पूरी तरह से अलग कार्यान्वयन के साथ स्वैप कर सकते हैं: मौजूदा क्लाइंट और फ़ैक्टरी विधि इंटरफ़ेस को बदलना नहीं होगा।
टिप्पणी बहुत लंबी हो गई ... इसलिए इसे एक उत्तर के रूप में पोस्ट करना पड़ा।
क्या यह आपके प्रश्न का उत्तर देता है ?: http://stackoverflow.com/questions/2470290/why-do-static-create-methods-exist – Kobi
सटीक डुप्लिकेट: http://stackoverflow.com/questions/69849/factory -पटर-जब-उपयोग-फैक्ट्री-विधियों/2430719 # 2430719 – kyoryu