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