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