मुखौटा पैटर्न एक अधिक जटिल संरचना पर रखी गई एक सरल संरचना है।
प्रतिभागी
सबसिस्टम कोई भी वर्ग या ऑब्जेक्ट हैं जो कार्यक्षमता को लागू करते हैं लेकिन इंटरफ़ेस को सरल बनाने के लिए फेकाडे द्वारा "लिपटे" या "कवर" किए जा सकते हैं।
फेकाडे सबसिस्टम के ऊपर अमूर्तता की परत है, और जानता है कि कौन सा सबसिस्टम उपयुक्त कार्य को सौंपना है।
Facade पैटर्न इतना सामान्य है कि यह लगभग हर बड़े ऐप पर लागू होता है, विशेष रूप से उन ऐप्स पर जहां मैं विभिन्न कारणों से उक्त ऐप्स के टुकड़ों को रिफैक्टर या संशोधित नहीं कर सका।
उदाहरण
public class HomeFacade { LightsFacade light; MusicSystemFacade musicSystem; AcFacade ac; public HomeFacade() { light = new LightsFacade(); musicSystem = new MusicSystemFacade(); ac = new AcFacade(); } public void LeaveHomeForOffice() { light.SwitchOffLights(); musicSystem.SwitchOffMusicSystem(); ac.SwitchOffAc(); } public void ArriveHomeFromOffice() { light.SwitchOnLights(); musicSystem.SwitchOnMusicSystem(); ac.SwitchOnAc(); } } public class LightsFacade { public void SwitchOnLights() { Console.WriteLine("Switched on Lights"); } public void SwitchOffLights() { Console.WriteLine("Switched off Lights"); } } public class MusicSystemFacade { public void SwitchOnMusicSystem() { Console.WriteLine("Switched on MusicSystem"); } public void SwitchOffMusicSystem() { Console.WriteLine("Switched off MusicSystem"); } } public class AcFacade { public void SwitchOnAc() { Console.WriteLine("Switched on Ac"); } public void SwitchOffAc() { Console.WriteLine("Switched off Ac"); } }