जब एक अन्य वर्ग / संरचना विधियों का बड़े पैमाने पर उपयोग करना ठीक होता है, तो एक संभावित स्थिति होती है - जब आपकी कक्षा / संरचना डेटा के लिए एक कंटेनर होती है। आमतौर पर एक छोटा सा होता है जिसे आप बाहरी संदर्भ के बिना इस डेटा के साथ कर सकते हैं।
इस तरह की कक्षाएं अभी भी कुछ आंतरिक तर्क रख सकती हैं लेकिन अधिक बार उन्हें कंटेनरों के रूप में उपयोग किया जाता है:
class YourUid {
public:
YourUid(int id_in_workplace_, int id_in_living_place_, DB* FBI_database, int id_in_FBI_database);
bool IsInvalidWorker() const { return id_in_workplace == consts::invalid_id_in_workplace; }
bool CanMessWith() const { return !FBI_database_.is_cool(id_in_FBI_database_); }
int id_in_workplace;
int id_in_living_place;
private:
int id_in_FBI_database_;
const DB* FBI_database_;
};
@jhewlett ने अपने उत्तर में इस लेख को यह साबित करने के लिए संदर्भित किया है कि आपको बड़े पैमाने पर अन्य वर्ग के सदस्यों का उपयोग नहीं करना चाहिए, लेकिन मेरे उदाहरण के साथ वकालत करने वाली एक अन्य कोड की स्थिति है।
लंबी पैरामीटर सूची। किसी दिए गए विधि में आपके लिए आवश्यक मापदंडों की संख्या को सीमित करें, या पैरामीटर को संयोजित करने के लिए किसी ऑब्जेक्ट का उपयोग करें।