मेरे पास एक बहुत ही सरल सवाल है:जावा अंतिम सार श्रेणी
मैं जावा क्लास रखना चाहता हूं, जो एक सार्वजनिक स्थैतिक विधि प्रदान करता है, जो कुछ करता है। यह केवल encapsulating उद्देश्यों के लिए है (सब कुछ एक अलग वर्ग के भीतर महत्वपूर्ण है) ...
इस वर्ग को न तो तत्काल किया जाना चाहिए, न ही विस्तारित किया जाना चाहिए। इससे मुझे लिखा गया:
final abstract class MyClass {
static void myMethod() {
...
}
... // More private methods and fields...
}
(हालांकि मुझे पता था, यह वर्जित है)।
मुझे यह भी पता है कि मैं इस वर्ग को पूरी तरह से अंतिम बना सकता हूं और इसे निजी बनाने के दौरान मानक कन्स्ट्रक्टर को ओवरराइड कर सकता हूं।
लेकिन यह अधिक एक "वर्कअराउंड" की तरह मुझे लगता है और अधिक होने की संभावना अंतिम सार वर्ग द्वारा किया जाना चाहिए ...
और मैं समाधानों से नफरत है। तो सिर्फ अपनी रुचि के लिए: क्या कोई और बेहतर तरीका है?
सिंगलटन पैटर्न? –
आप कक्षा सार क्यों बनाना चाहते हैं? सार वर्ग का अर्थ है कि कुछ घोषित लेकिन अनुपूरक विधियां हैं, जो ** ** कक्षाओं का विस्तार ** _must_ कार्यान्वित करती हैं। –
@ एलेक्स जी: यह सच नहीं है ... सार वर्ग का अर्थ है: आप इसे तुरंत चालू नहीं कर सकते हैं। आपको उस वर्ग के भीतर अमूर्त तरीकों को परिभाषित करने में असफलता नहीं है ... बेशक आप सही हैं। आम तौर पर आप जैसे अमूर्त वर्गों का उपयोग करेंगे। लेकिन यह सिर्फ एक "बिंदु-दृश्य" चीज है। मैं हमेशा अमूर्त तरीकों को परिभाषित किए बिना अपने बड़े फैक्ट्री वर्गों का सार बना देता हूं। – Sauer