2013-08-11 5 views
5

परिचयफैक्टरी विधि के लिए नामकरण सम्मेलन क्या है?

MacApp लबादा अनुप्रयोग फ्रेमवर्क [App89] हमेशा सार आपरेशन कि कक्षा * DoMakeClass(), जहां कक्षा उत्पाद वर्ग के रूप में कारखाने पद्धति निर्धारित करता है की घोषणा की।

इस उद्धरण ने मुझे फैक्टरी विधि डिजाइन पैटर्न के लिए सम्मेलनों का नामकरण करने के बारे में सवाल उठाया है।

उम्मीदें

मैं सर्वोत्तम प्रथाओं या उपयोगी उदाहरणों, जो स्पष्ट कारखाने तरीकों नामकरण प्रदान देखने की उम्मीद।

चूंकि यह किसी भाषा पर निर्भर हो सकता है, चलिए सबसे लोकप्रिय भाषाओं का एक सेट मानते हैं: सी #, जावा, सी ++ और जावास्क्रिप्ट।

प्रसंग

एक संदर्भ मैं निम्नलिखित वर्ग संरचना पर विचार करने का प्रस्ताव है। हमारे पास दो अमूर्त वर्ग हैं: दस्तावेज़ और आवेदन। आवेदन में दस्तावेजों की एक सूची है और एक नया दस्तावेज़ बनाना संभव होना चाहिए। एप्लिकेशन में फैक्टरी विधि CreateDocument() है।

enter image description here

धन्यवाद

+1

सम्मेलन, यदि कोई हो, तो शायद भाषा निर्भर है ... – assylias

+0

मुझे सी #, सी ++ और जावास्क्रिप्ट में रूचि है। मैंने सम्मेलन नामकरण के बारे में कुछ भी खोजने की कोशिश की, लेकिन मेरे प्रश्न में केवल एक (मैकएप के बारे में) रखा गया है। – Warlock

उत्तर

4

IMHO, विधि नाम संदर्भ पर निर्भर है और वस्तु की प्रकृति बनाया जा रहा। शायद यही कारण है कि आपको कोई स्पष्ट सम्मेलन नहीं मिला है। उदाहरण के लिए, Create() विधि एक संदर्भ में सही हो सकती है जबकि Open() या Build() दूसरों में अधिक उपयुक्त हो सकती है।

+0

मैं संदर्भ के लिए सहमत हूं और +1 करता हूं। संदर्भ डोमेन संचालित * डोमेन संचालित डिजाइन * से उद्धृत किया गया है। –

+0

नामकरण सम्मेलन एक ऐसी चीज है जो मौजूद है या नहीं। यह किसी संदर्भ या प्रोग्रामिंग भाषा पर निर्भर नहीं होना चाहिए। – Warlock

+0

मुझे समझ में नहीं आता है। आपको नामकरण सम्मेलन की आवश्यकता क्यों है? 'CreateDocument() 'एक अच्छी तरह से नामित, स्वयं-दस्तावेज फैक्ट्री विधि प्रतीत होता है। –

0

इस डिजाइन पैटर्न से संबंधित कोई मजबूत सम्मेलन नहीं हैं। सबसे अच्छी प्रैक्टिस कुछ भाषाओं में फ़ैक्टरी विधि को चिह्नित करने के लिए "Do" या "Make" उपसर्ग का उपयोग करेगा, जो वर्चुअल या अमूर्त विधियों को एम्बेड नहीं किया गया है (उदाहरण के लिए, जावास्क्रिप्ट)।

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