फेकाडे इंटरफेस के साथ सौदा करता है, कार्यान्वयन नहीं। इसका उद्देश्य एक ही इंटरफ़ेस के पीछे आंतरिक जटिलता को छिपाना है जो बाहर सरल दिखाई देता है। आपके प्रश्न के उदाहरण में, मुखौटा एक ही विधि के पीछे चार वर्ग (ऑर्डर, ऑर्डरलाइन, पता, बास्केट इटिम) छुपाता है।
टेम्पलेट विधि कार्यान्वयन के साथ सौदा करती है। इसका उद्देश्य आम एल्गोरिदम को कई लोगों से निकालना है जो केवल 'रिक्त स्थान भरें' में भिन्न होते हैं। सुपरक्लास में टेम्पलेट विधि सामान्य एल्गोरिदम लागू करती है और प्रत्येक उपclass 'रिक्त स्थान में भरती है' अपने विशिष्ट तरीके से।
तो लेखक यहां टेम्पलेट पैटर्न का उपयोग क्यों नहीं करते?
ऑपरेशन के कई समान संस्करण होने पर placeOrder
एक टेम्पलेट विधि बनाने के लिए यह समझदारी होगी। हो सकता है कि placePhoneOrder
, placeInternetOrder
, placeManuallyEnteredOrder
जैसे कुछ विधियों को केवल एक ही टेम्पलेट placeOrder
में दो उप-वर्गों के साथ केवल {फोन, इंटरनेट, मैनुअल}-विशिष्ट अंतर लागू करने के साथ पुन: सक्रिय किया जा सके।
स्रोत
2009-11-23 09:29:39
फेकाडे और टेम्पलेट के बीच की रेखा खींचकर आपका क्या मतलब है? फेकाडे एक संरचनात्मक पैटर्न है और टेम्पलेट एक व्यवहार पैटर्न है- मुझे नहीं लगता कि आप दोनों को कैसे जोड़ सकते हैं? – RichardOD