उद्देश्य सी में फैक्टरी पैटर्न
डिजाइन पैटर्न के लिए दोनों एक प्रोग्रामर ऑपरेटिंग योजना लागू करने के लिए, आवेदन कोड की तैयारी के दौरान, के रूप में अच्छी तरह से उसे की सुविधा हैं. इस पोस्ट में, मैं मेरे फैक्टरी के मानक कार्यान्वयन के सरलीकृत संस्करण पेश करेंगे फैक्टरी उदाहरण के लिए, उद्देश्य सी.
Factory.h
# आयात@ इंटरफ़ेस फैक्टरी: NSObject { NSMutableDictionary * चर; } (आईडी) init; + (शून्य) setVar: (आईडी) vari forKey कुंजी; (आईडी) + Getvar: (आईडी) कुंजी; (शून्य) removeVar: (आईडी) कुंजी; @ End
Factory.m
"Factory.h" आयात _AT_ कार्यान्वयन फैक्टरी स्थिर NSMutableDictionary * चर = शून्य; (आईडी) init { अगर (चर) चर = [[NSMutableDictionary alloc] init]; स्वयं लौटने; } + (शून्य) setVar: (आईडी) vari forKey: कुंजी (आईडी) { अगर ([चर objectForKey: () आईडी कुंजी! = शून्य) [स्व removeVar: (आईडी) कुंजी]; [परिवर्तनीय setObject: (आईडी) vari forKey: (आईडी) कुंजी]; } + (आईडी) Getvar: कुंजी (आईडी) { वापसी [चर objectForKey की: (आईडी) कुंजी]; } + (शून्य) removeVar: (आईडी) कुंजी { {: अगर (= शून्य () आईडी महत्वपूर्ण चर objectForKey!) [चर removeObjectForKey: (आईडी) कुंजी]; } } @ End
स्थापना
- कि आवेदन कोड में प्रत्येक फ़ाइल की शुरुआत में शामिल है nazwa_aplikacji_prefix.pch फ़ाइल में जोड़ने के लिए, "Factory.h" आयात.
- विधि में (BOOL) आवेदन: (UIApplication *) आवेदन didFinishLaunchingWithOptions: (NSDictionary *) launchOptions, शुरुआत में जोड़ने के [फैक्टरी init].
कैसे उपयोग करने के लिए
- कारखाने के लिए वस्तुओं की विधि द्वारा जोड़ना [फैक्टरी setVar के (आईडी) NaszObiekt forKey: @ "naszKlucz"];
- कारखाने से की विधि द्वारा वस्तु पुनर्प्राप्त करें [फैक्टरी Getvar: @ "naszKlucz"];
- हम रजिस्ट्री से की विधि का उपयोग कर वस्तु को हटा दें: [फैक्टरी removeVar @ "naszKlucz"];
फोटो: फ़्लिकर
संबंधित प्रविष्टियों
3 / टिप्पणी
अपनी टिप्पणी के लिए धन्यवाद.
सच कहूँ तो, यह वास्तव में एक पुस्तक के लिए विषय दृष्टिकोण नहीं है, लेकिन है कि मेरे वर्ग है, जो एक साथ कई बार देखा भर में वस्तुओं की संचार की सुविधा है. मैं इस वर्ग है, जो ठीक stwierdziłeś वास्तव में इस मॉडल की बुनियादी सिद्धांत तोड़ दिया वस्तुओं का निर्माण करने के लिए मुख्य रूप से छोड़ना चाहता था.
तकनीकी नोट्स के बारे में, निश्चित रूप से अनुकूलन चोट नहीं करता है.
यह अच्छा है कि आप पोलिश दृश्य उद्देश्य सी प्रोग्रामर, जो, दुर्भाग्य से, अपेक्षाकृत कुछ पोलिश इंटरनेट में लिखने से प्रतिक्रिया पर भरोसा कर सकते हैं.
मैं एक छोटे से है, लेकिन अंग्रेजी में लिख रहा हूँ
लेकिन तथ्य यह है कि पोलिश इंटरनेट में के ObjC के बारे में बहुत कम है, तथ्य यह है कि ObjC प्रोग्रामर आम तौर पर रूबी या अजगर के साथ भी तुलना में बहुत कम कर रहे हैं के कारण ...



















































कुछ अजीब है कि आप बाहर चला गया ... क्योंकि मानक फैक्टरी सामान्य विचार में एक कारखाना है कि एक वर्ग के (या एक चुटकी विधि) एक वर्ग के विभिन्न उदाहरणों अपने आंतरिक एल्गोरिथ्म और संभवतः उपलब्ध विकल्पों में से कुछ पर आधारित बनाने के लिए. अधिक विशेष रूप से एक आम आधार वर्ग या अलग वर्गों है कि एक आम अंतरफलक को लागू करने की विभिन्न उपवर्गों की घटनाओं उत्पन्न करता है.
आप यहाँ हैं उत्पन्न करता है, नहीं सब पर किसी भी उदाहरण सिर्फ एक हैश में बातें फेंक, तो यह बजाय एक वैश्विक रजिस्ट्री और एक कारखाना नहीं है. मैं कह रही है कि यह उपयोगी नहीं होगा नहीं कर रहा हूँ, लेकिन कारखाने यह करने के लिए कुछ भी नहीं है ...
यहां तक कि तकनीकी नोट्स, काफी अवधारणा से अलग:
- नहीं, जाँच करें कि क्या कुंजी इसे मिटाने से पहले से मौजूद है के रूप में यह है कि कुछ नहीं होगा की जरूरत है
- नहीं, नई सेटिंग है, वहाँ के रूप में एक ही जगह है पहले कुंजी को दूर करने की जरूरत है
- तुम init इनिशियलाइज़ की बजाय कर सकते हैं, तो यह एक वर्ग हो सकता है और निर्माता स्वतः कॉल