सबसे पहले और सबसे महत्वपूर्ण, यदि आप कक्षा को फिर से पालन करने के बारे में चिंतित हैं, तो आप शायद विरासत गलत कर रहे हैं। विरासत का उपयोग "है-ए" संबंध स्थापित करने के लिए किया जाना चाहिए, न केवल कोड पुन: उपयोग करना। यदि आपको कोड को फिर से उपयोग करने की आवश्यकता है, तो विरासत के बजाय प्रतिनिधिमंडल का उपयोग करने पर विचार करें। मुझे लगता है कि आप एक उप-प्रकार और उसके माता-पिता के बीच एक मध्यवर्ती प्रकार का परिचय दे सकते हैं, लेकिन मैं उस संभावना को अपने डिजाइन को ड्राइव करने देता हूं।
दूसरे, आप आधार वर्ग से कार्यक्षमता का उपयोग, लेकिन यह विस्तार करने के लिए और उपयोग के मामले में स्थिर विधि के लिए कहता है की जरूरत है, तो आप कार्यक्षमता धारण करने के लिए कुछ बाहरी वर्ग के उपयोग पर विचार करना चाह सकते हैं। मेरे दिमाग में इसके लिए क्लासिक केस फैक्टरी पैटर्न है। फैक्टरी पैटर्न को लागू करने का एक तरीका फैक्ट्री विधियों के माध्यम से है, उस वर्ग पर एक स्थिर विधि है जो उस वर्ग का उदाहरण बनाती है। आम तौर पर कन्स्ट्रक्टर संरक्षित होता है ताकि फैक्ट्री विधि बाहर से कक्षा बनाने का एकमात्र तरीका हो।
विरासत पदानुक्रम में फैक्ट्री विधियों के साथ पुन: उपयोग करने का एक तरीका सामान्य कोड को संरक्षित विधि में रखना होगा और उस विधि को फैक्ट्री विधि से कॉल करना होगा, बजाय उप-वर्ग से बेस क्लास फैक्टरी विधि को सीधे कॉल करने के बजाय फैक्टरी विधि प्रकार। एक बेहतर कार्यान्वयन एक ही तकनीक का उपयोग कर सकता है लेकिन ऑब्जेक्ट बनाने के लिए फैक्टरी पद्धतियों को फैक्ट्री क्लास में ले जा सकता है और कन्स्ट्रक्टर लॉजिक (आंतरिक अब, निजी नहीं) का उपयोग कर सकता है, शायद प्रारंभिक विधि (ओं) के संयोजन के साथ। यदि आप जिस व्यवहार को प्राप्त कर रहे हैं वह वर्ग (डिक्रिप्शन/सत्यापन/आदि) से बाहरी है, तो आप कारखाने के भीतर साझा विधियों (या संरचना) का उपयोग फैक्ट्री विधियों के बीच फिर से उपयोग करने की अनुमति के लिए कर सकते हैं।
स्थिर तरीकों के उपयोग के लक्ष्य को जानने के बिना आपको एक सटीक दिशा देना मुश्किल है, लेकिन उम्मीद है कि इससे मदद मिलेगी।
कोई विशेष कारण यह विशेष विधि स्थिर क्यों है? – Rad