क्लास क्लस्टर्स एकल सार्वजनिक इंटरफ़ेस को ठोस, निजी उपवर्ग कार्यान्वयन के एक समूह को प्रदान करते हैं। एक उद्देश्य-सी प्रोग्रामर अक्सर क्लास क्लस्टर का उपयोग करता है और शायद ही कभी इसका एहसास होता है - और यह एक क्लास क्लस्टर का पूरा बिंदु है। क्लास क्लस्टर का काम सार्वजनिक इंटरफ़ेस के पीछे कार्यान्वयन विवरण की जटिलता को छिपाना है।
फाउंडेशन की कई कक्षाएं क्लास क्लस्टर हैं, जैसे NSString, NSArray, NSDictionary, और NSNumber। जब आप कॉल [NSString stringWithFormat:]
करते हैं तो क्लास क्लस्टर आपको कुछ ठोस क्लास दे रहा है जो NSString
इंटरफ़ेस को लागू करता है। यह एक हो सकता है NSConcreteString
, NSCFString
,NSFooBarString
, आदि कौन सा वर्ग क्लस्टर आप निर्माता के आधार पर या आप बुला रहे हैं और तर्क प्रारंभकर्ता है देता है।
इस वजह से, क्लास क्लस्टर्स ऑब्जेक्टिव-सी प्रोग्रामिंग में सबसे सशक्त अवधारणाओं में से एक हैं।
- लागू करने के लिए बहुत आसान है
- कोड को बदलने के बिना अंतर्निहित कार्यान्वयन को बदलना आसान है जो इसे कॉल करता है।
- रनटाइम पर अलग-अलग ठोस कार्यान्वयन प्रदान करना आसान (यानी परीक्षण संसाधन या नकली वस्तुएं)
- उपरोक्त के कारण, परीक्षण करने में आसान और रिफलेक्टर
यदि आप अन्य भाषाओं से आ रहे हैं, तो आप गैंग ऑफ़ फोर पैटर्न से परिचित हो सकते हैं। क्लास क्लस्टर में अमूर्त कारखाने और मुखौटा पैटर्न दोनों के तत्व हैं।
Apple के सार्वजनिक दस्तावेज में क्लास क्लस्टर्स (और उन्हें कैसे लागू किया जाए और कैसे बढ़ाया जाए) शामिल हैं। दुर्भाग्य से, मैंने पाया है कि कई आईओएस डेवलपर्स के लिए यह और अन्य कोको-विशिष्ट पैटर्न एक अंधा स्थान है।
कोको कोर प्रतियोगिताएं: क्लास क्लस्टर
कोको बुनियादी बातों गाइड: कक्षा समूहों
GitHub पर अपने स्वयं के क्लास क्लस्टर्स को कैसे लागू किया जाए, इसके उदाहरण हैं