क्या मुख्य वर्ग बनाने का कोई तरीका है - मुख्य पर आधारित .fla - static? इसलिए हम इसे जावा में इस्तेमाल कर सकते हैं, इसे अन्य वर्गों से संदर्भित करने में सक्षम होने के कारण, क्योंकि मुझे मुख्य रूप से कक्षा के पैरामीटर के रूप में मुख्य उदाहरण का उदाहरण पारित करना है, अन्यथा मैं संदर्भ खो देता हूं। मैंने स्थैतिक उपसर्ग जोड़ने की कोशिश की लेकिन लगता है कि as3 इसे अनुमति नहीं देता है।स्टेटिक मुख्य श्रेणी - AS3
उत्तर
एएस 3 में स्थैतिक वर्ग की अवधारणा नहीं है।
आप अपने मुख्य वर्ग के अनूठा उदाहरण का पर्दाफाश करने के सिंगलटन पैटर्न का उपयोग कर सकते हैं:
public class Main extends Sprite {
public static var instance:Main;
public function Main() {
instance = this;
}
... या सिर्फ static
के रूप में अन्य गुण/तरीकों का पर्दाफाश निशान है, हालांकि यह प्रबंधित करना मुश्किल होता हो जाता है।
मैं उल्लेख करने के लिए कि हालांकि static
का उपयोग कर कभी कभी बुरा कोड डिजाइन की ओर जाता है की जरूरत है
(बजाय, आप कक्षाओं उदाहरण के लिए उनके निर्माता के माध्यम से यह जरूरत है कि करने के लिए Main
के कहने पारित कर सकते हैं) यह लोकप्रिय नहीं होगा जवाब, मुझे पता है ... उदाहरणों का पर्दाफाश करने के लिए स्थिर गुणों का उपयोग करना वास्तव में एक बुरा विचार है। सिंगलटन विरोधी पैटर्न बहुत लोकप्रिय है, लेकिन यह नहीं होना चाहिए, यह बुरे प्रथाओं की ओर जाता है और अनावश्यक रूप से कक्षाओं को एक-दूसरे से जोड़ता है।
आपको खुद से पूछना होगा कि क्या आपको वास्तव में अन्य कक्षाओं में मुख्य कक्षा का संदर्भ देने की आवश्यकता है? एएस 3 में एक इवेंट सिस्टम है जो आपको आवश्यक सभी ढीले युग्मन प्रदान कर सकता है। यदि किसी डिस्प्ले ऑब्जेक्ट को मुख्य श्रेणी के उदाहरण के साथ संवाद करने की आवश्यकता है तो इसे प्रदर्शन सूची के माध्यम से ईवेंट भेजकर पूरा किया जा सकता है।
निर्भरता प्रबंधन की समस्या एक निर्भरता इंजेक्शन ढांचे द्वारा सबसे अच्छी तरह से संभाली जाती है (जिनमें से कई में कुछ केंद्रीकृत संदेश प्रणाली है, जो घटनाओं से अधिक प्रदर्शन-सूची में धड़कता है)। यदि आपको लगता है कि किसी भी लोकप्रिय (PureMVC, RobotLegs, आदि) अधिक है, तो आप आसानी से एक (सरल और सीमित) बना सकते हैं।
सिंगलेट्स या स्थैतिक उदाहरण एक्सेसर्स पर भरोसा करने के लिए कभी भी कई टूल और पैटर्न नहीं हैं, क्योंकि वे आपके जीवन को दुखी करते हैं और आपका कोड भंगुर, अनावश्यक, अवांछित, अविश्वसनीय और छोटी गाड़ी बनाते हैं।
समझ में आता है। मैं स्थैतिक और सिंगलटन दोनों से बचने और मुख्य रूप से सभी नियंत्रण रखने का अभ्यास करने की कोशिश करूंगा। हालांकि, मुझे यह खोजना होगा कि इसे कैसे किया जाए। आप कुछ उदाहरण दे सकते थे, लेकिन निर्देशों के लिए वैसे भी धन्यवाद। : एस –
मुख्य कक्षा के लिए एक इंटरफ़ेस बनाएं और मुख्य में बनाए गए बाल वर्गों के संदर्भ के रूप में पास करें। लेकिन उदाहरणों के बारे में अच्छी बात यह है कि इसे संदर्भों की आवश्यकता नहीं होगी और कोड में किसी भी परत पर उपलब्ध है, लेकिन एंटोनी ने कहा, यह खराब डिजाइन के लिए जाल हो सकता है। – Gone3d