मुझे विश्वास नहीं है कि पैटर्न की "सख्त परिभाषा" जैसी कोई चीज़ है। एक समस्या के सार को पकड़ने के लिए उनके प्रकृति पैटर्न मौजूद हैं जो सॉफ़्टवेयर में समय और समय को फिर से फसल करते हैं और यह बताते हैं कि समाधान कैसे दिख सकता है।
विशेष रूप से फैक्टरी पैटर्न के साथ, नहीं, कारखाने के तरीके स्थिर होने की कोई आवश्यकता नहीं है। पैटर्न का सार यह है कि आपके पास एक वस्तु है जो किसी अन्य वर्ग के उदाहरण बनाने के लिए ज़िम्मेदार है। आप यह कैसे करते हैं वास्तव में आप पर निर्भर करता है, हालांकि पैटर्न में वर्णित एक सामान्य तरीका, कक्षा पर एक स्थिर विधि का उपयोग करना है। हालांकि, हमारे पास हमारे सिस्टम में से एक में कारखाना तंत्र है जो वास्तव में दो चरण है। आप फ़ैक्टरी ऑब्जेक्ट बनाने के लिए कक्षा पर एक स्थिर विधि का उपयोग करते हैं, जिसे कार्यान्वयन के एक सेट के बीच चुनने के लिए कॉन्फ़िगर किया जा सकता है, और उसके बाद वास्तविक कार्य करने के लिए आवश्यक ऑब्जेक्ट के उदाहरणों को मुद्रित करने के लिए फैक्ट्री ऑब्जेक्ट का उपयोग करें।
एक ऐसी भाषा में फैक्ट्री पैटर्न के कार्यान्वयन पर भी विचार करें जिसमें स्थिर तरीके नहीं हैं। उदाहरण के लिए, स्कैला में आप कक्षा के बजाए ऑब्जेक्ट का उपयोग करेंगे। यद्यपि इसका व्यवहार जावा में कक्षा पर स्थिर तरीकों का उपयोग करने जैसा है, कार्यान्वयन की प्रकृति काफी अलग है।
+1 वास्तव में आपके लिए अपनी सोच करने के लिए पैटर्न की उम्मीद नहीं करना महत्वपूर्ण है, पैटर्न सख्त नहीं हैं, पैटर्न कमजोर नहीं हैं, पैटर्न नियंत्रण में नहीं हैं! – djna