कोहेशन (Cohesion) मॉड्यूल (क्लास/मेथड) के आंतरिक तत्वों के बीच संबंध की डिग्री दर्शाता है। यह दर्शाता है कि एक मॉड्यूल की जिम्मेदारियाँ कितनी केंद्रित और संबंधित हैं।
उच्च कोहेशन (High Cohesion) - वांछनीय
- मॉड्यूल एक ही अच्छी तरह से परिभाषित कार्य करता है।
- मेंबर्स एक-दूसरे से दृढ़ता से संबंधित होते हैं।
- पुन: उपयोग, रखरखाव, परीक्षण आसान।
- उदाहरण:
System.Math- केवल गणितीय स्थिरांक और स्टैटिक मेथड्स (Abs,PI,Pow)।
निम्न कोहेशन (Low Cohesion) - टालें
- मॉड्यूल असंबंधित कई कार्य करता है।
- समझना, रखरखाव, पुन: उपयोग करना कठिन।
- उदाहरण: एक क्लास जो ईमेल भेजती है, प्रिंट करती है, कॉपी करती है, डेटाबेस एक्सेस करती है - सभी एक साथ।
कोहेशन के प्रकार (सर्वश्रेष्ठ से सबसे खराब)
- फंक्शनल: सभी मेंबर्स एक ही कार्य में योगदान देते हैं।
- सीक्वेंशियल: एक का आउटपुट दूसरे का इनपुट।
- कम्युनिकेशनल: समान डेटा पर ऑपरेट करते हैं।
- प्रोसीजरल: क्रम में निष्पादित होते हैं।
- टेम्पोरल: समान समय पर निष्पादित (जैसे इनिशियलाइज़ेशन)।
- लॉजिकल: समान प्रकृति के ऑपरेशन्स (जैसे सभी इनपुट वैलिडेशन)।
- कोइन्सिडेंटल: कोई संबंध नहीं (सबसे खराब)।
सिद्धांत: हमेशा उच्च (फंक्शनल) कोहेशन का लक्ष्य रखें। सिंगल रिस्पॉन्सिबिलिटी प्रिंसिपल (SRP) इसी को लागू करता है।