मुखौटा डिजाइन पैटर्न क्या है?


191

क्या मुखौटा एक वर्ग है जिसमें अन्य वर्गों का एक बहुत कुछ है?

क्या यह एक डिजाइन पैटर्न बनाता है? मेरे लिए, यह एक सामान्य वर्ग की तरह है।

क्या आप मुझे यह मुखौटा पैटर्न समझा सकते हैं ?


7
प्रत्येक डिजाइन पैटर्न इसके कार्यान्वयन में कक्षाओं का एक गुच्छा है।
फेलिक्स क्लिंग

1
एक वर्ग में कई इंटरफेस छिपाकर फेकडे पैटर्न इंटरफ़ेस का उपयोग करना आसान बनाता है। इस लेख में अधिक विवरण हैं
user3199690

इस पोस्ट में अच्छी तरह से समझाया गया programmerzdojo.com/java-tutorials/…
rishi007bansod

इसे नीचे फेंकना पड़ा क्योंकि यह "अनुसंधान प्रयास नहीं दिखाता है"
रॉय Truelove

1
@RoyTruelove, वह करें जो आप चाहते हैं। तब तक देखभाल नहीं करता जब तक कि प्रश्न के लिए सहायक उत्तर न हों। प्रश्न के लिए कोई सहायक उत्तर?
केविन

जवाबों:


190

एक डिज़ाइन पैटर्न आवर्ती समस्या को हल करने का एक सामान्य तरीका है। सभी डिज़ाइन पैटर्न में कक्षाएं सामान्य वर्ग हैं। जो महत्वपूर्ण है वह यह है कि उन्हें कैसे संरचित किया जाता है और कैसे वे किसी संभव समस्या को हल करने के लिए मिलकर काम करते हैं।

फसाड डिजाइन पैटर्न एक जटिल प्रणाली के लिए इंटरफ़ेस को सरल; क्योंकि यह आम तौर पर उन सभी वर्गों से बना होता है जो जटिल प्रणाली के उपतंत्र बनाते हैं।

एक मुखौटा प्रणाली के जटिल विवरण से उपयोगकर्ता को ढालता है और उन्हें इसमें से एक प्रदान करता simplified viewहै जो है easy to use। यह decouplesकोड भी है जो सिस्टम को सबसिस्टम के विवरण से उपयोग करता है, जिससे बाद में सिस्टम को संशोधित करना आसान हो जाता है।

http://www.dofactory.com/Patterns/PatternFacade.aspx

http://www.blackwasp.co.uk/Facade.aspx

इसके अलावा, डिज़ाइन पैटर्न सीखते समय क्या महत्वपूर्ण है, यह पहचानने में सक्षम होना है कि कौन सा पैटर्न आपकी दी गई समस्या को फिट करता है और फिर उचित रूप से इसका उपयोग करता है। किसी पैटर्न का दुरुपयोग करना या किसी समस्या के लिए उसे फिट करने की कोशिश करना बहुत ही आम बात है क्योंकि आप इसे जानते हैं। डिजाइन पैटर्न का उपयोग करते हुए सीखते समय उन नुकसानों से अवगत रहें।


9
@kevin: उन्हें कब इस्तेमाल करना है, यह जानना सबसे मुश्किल हिस्सा है। सिद्धांत रूप में, पैटर्न आसान हो सकते हैं, लेकिन इसके लिए वे अभ्यास में कठिन हैं। आप केवल इस अनुभव को सीख सकते हैं, अर्थात। कोडिंग, कोडिंग, कोडिंग।
फेलिक्स क्लिंग

मुखौटा डिजाइन पैटर्न भी विस्तार वर्ग के कार्यान्वयन को छिपाने और सार्वजनिक एप को सुरक्षित रूप से आपूर्ति करने के लिए उपयोग किया जाता है।
yebw

29
jquery में $ मुखौटा डिजाइन पैटर्न का सिर्फ सरल उदाहरण है जो सरल इंटरफ़ेस प्रदान करता है और सभी जटिलता को छिपाता है
अजय बेनीवाल

कुछ के लिए एक वास्तविक दुनिया उदाहरण के साथ एक मुखौटा डिजाइन पैटर्न की तलाश में। मैं इस छोटे youtube tutuorial भर में आया था। आशा है कि इसके उपयोगी youtu.be/dLjJo2v2re8
शंकर गणेश

जब आवेदन बड़ा हो जाता है तो क्या हमारे पास एकल प्रणाली के लिए एक से अधिक परत हो सकती है?
जीव जसब

99

विकिपीडिया में मुखौटा पैटर्न का एक बड़ा उदाहरण है।

/* Complex parts */

class CPU {
    public void freeze() { ... }
    public void jump(long position) { ... }
    public void execute() { ... }
}

class Memory {
    public void load(long position, byte[] data) { ... }
}

class HardDrive {
    public byte[] read(long lba, int size) { ... }
}

/* Facade */

class ComputerFacade {
    private CPU processor;
    private Memory ram;
    private HardDrive hd;

    public ComputerFacade() {
        this.processor = new CPU();
        this.ram = new Memory();
        this.hd = new HardDrive();
    }

    public void start() {
        processor.freeze();
        ram.load(BOOT_ADDRESS, hd.read(BOOT_SECTOR, SECTOR_SIZE));
        processor.jump(BOOT_ADDRESS);
        processor.execute();
    }
}

/* Client */

class You {
    public static void main(String[] args) {
        ComputerFacade computer = new ComputerFacade();
        computer.start();
    }
}

6
यह एक अच्छा उदाहरण है। एक क्लाइंट को एक साथ सभी चरणों में एक साथ टुकड़े करने में सक्षम होने की आवश्यकता होती है यदि वे भी चुनते हैं, तो कुछ भी निजी तरीकों से छिपा नहीं होना चाहिए।
रॉब

2
Imho यह एक अच्छा उदाहरण नहीं है क्योंकि यह उपयोग के मामले पर जोर नहीं देता है। उदाहरण केवल दिखाता है, जैसा कि कहा गया है, एक नियमित वर्ग। हार्डवेयर की संगति एक रचना है। हो सकता है कि विकी पर उदाहरण के लिए overkill हो, लेकिन सबमॉड्यूल को उकसाने के बजाय निर्भरता इंजेक्शन का उपयोग इरादे पर जोर देगा और संभवतः टीओ के भ्रम से बचें।
मैनुएल श्नाइड

यह एक अद्भुत उदाहरण है क्योंकि यह केवल अवधारणा को समझने के लिए संक्षेप में हजारों शब्दों को लपेटता है। बाकी सिर्फ अलग-अलग परिदृश्यों के आस-पास का विवरण है जो एक हो सकता है (निश्चित रूप से एक डिजाइन पैटर्न प्रत्येक और हर परिदृश्य को कवर नहीं कर सकता है)।
सैयद

41

जैसा कि पिछले उत्तर में बताया गया है कि यह उपभोक्ता को एक सरल इंटरफ़ेस प्रदान करता है। उदाहरण के लिए: "घड़ी ईएसपीएन" इच्छित कार्य है। लेकिन इसमें कई चरण शामिल हैं जैसे:

  1. यदि आवश्यक हो तो टीवी पर स्विच करें;
  2. उपग्रह / केबल कामकाज की जाँच करें;
  3. यदि आवश्यक हो तो ईएसपीएन पर स्विच करें।

लेकिन मुखौटा इसे सरल करेगा और ग्राहक को केवल "घड़ी ईएसपीएन" फ़ंक्शन प्रदान करेगा।


29

मुखौटा प्रणाली की जटिलताओं को छुपाता है और ग्राहक को एक इंटरफ़ेस प्रदान करता है जहां से ग्राहक सिस्टम तक पहुंच सकता है।

public class Inventory {
public String checkInventory(String OrderId) {
    return "Inventory checked";
}
}

public class Payment {
public String deductPayment(String orderID) {
    return "Payment deducted successfully";
}
}


public class OrderFacade {
private Payment pymt = new Payment();
private Inventory inventry = new Inventory();

public void placeOrder(String orderId) {
    String step1 = inventry.checkInventory(orderId);
    String step2 = pymt.deductPayment(orderId);
    System.out
            .println("Following steps completed:" + step1
                    + " & " + step2);
   }
}

public class Client {
       public static void main(String args[]){
         OrderFacade orderFacade = new OrderFacade();
         orderFacade.placeOrder("OR123456");
         System.out.println("Order processing completed");
       }
  }

क्या उप प्रणालियों के लिए एक-दूसरे के साथ संवाद किए बिना अनुमति दी जाती है OrderFacade? आपके उदाहरण में, के बीच Paymentऔर Inventory?
इसरू

19

एक छोटी और सरल व्याख्या:

  • मुखौटा प्रणाली एक उपतंत्र में इंटरफ़ेस (एस) के एक एकीकृत इंटरफ़ेस को प्रदान करता है।
  • मुखौटा एक उच्च-स्तरीय इंटरफ़ेस को परिभाषित करता है जो सबसिस्टम का उपयोग करना आसान बनाता है।


फ़ैकडे के साथ और उसके बिना परिदृश्य को समझने की कोशिश करें: यदि आप accout1 से खाता 2 में धनराशि स्थानांतरित करना चाहते हैं तो दो उपप्रणालियों को आमंत्रित किया जाना है, खाता 1 से वापस लें और खाता 2 में जमा करें।

मुखौटा के साथ और बिना


सरल और स्पष्ट व्याख्या और उदाहरण, धन्यवाद! क्या आप यह भी बता सकते हैं कि एक सबसिस्टम को क्या परिभाषित करता है? जब सबसिस्टम में अपेक्षाकृत असंबंधित उपवर्ग / कार्य शामिल हो सकते हैं, तो आपकी परिभाषा लगभग किसी भी वर्ग पर लागू होती है। क्या सबसिस्टम की कक्षाएं बहुत तंग से संबंधित होनी चाहिए, उदाहरण के लिए एक मॉड्यूल या एक पुस्तकालय, कि एक मुखौटा को एक मुखौटा कह सकते हैं?
बेनी

@ बेनी हां, सबसिस्टम (यह एक वर्ग होगा) में अपेक्षाकृत असंबंधित कार्य शामिल हो सकते हैं, लेकिन मुखौटा एक ऐसा वर्ग है जहां आप तय करते हैं कि कौन से विशिष्ट कार्यों को कॉल करना है। आप "टूर पैकेज" बुक करना चाहते हैं, आप होटल, कैब, फ्लाइट का चयन एक जगह / फॉर्म में करते हैं, फिर आंतरिक रूप से मुखौटा विभिन्न उपयुक्त वर्गों के कार्यों को आमंत्रित करता है और आपको अंतिम परिणाम देता है। है ना?
अरुण राज

10

एक मुखौटा को एक वर्ग के रूप में वर्णित नहीं किया जाना चाहिए जिसमें कई अन्य वर्ग शामिल हैं। यह वास्तव में इस कक्षाओं के लिए एक इंटरफ़ेस है और कक्षाओं का उपयोग आसान बनाना चाहिए अन्यथा मुखौटा वर्ग बेकार है।


7

आपके प्रश्नों के बारे में:

क्या एक वर्ग है जो अन्य वर्गों का एक बहुत कुछ शामिल है?

हाँ। यह आवेदन में कई उप-प्रणालियों के लिए एक आवरण है।

क्या यह एक डिजाइन पैटर्न बनाता है? मेरे लिए, यह एक सामान्य वर्ग की तरह है

सभी डिजाइन पैटर्न भी सामान्य वर्ग हैं। @ अनमेश कोंडोलिकर ने इस प्रश्न का सही उत्तर दिया।

क्या आप मुझे इस पहलू के बारे में समझा सकते हैं, मैं पैटर्न डिजाइन करने के लिए नया हूं।

GoF के अनुसार, मुखौटा डिजाइन पैटर्न इस प्रकार है:

एक सबसिस्टम में इंटरफेस के एक सेट को एकीकृत इंटरफ़ेस प्रदान करें। मुखौटा पैटर्न एक उच्च-स्तरीय इंटरफ़ेस को परिभाषित करता है जो सबसिस्टम का उपयोग करना आसान बनाता है

फसाड पैटर्न आम तौर पर जब प्रयोग किया जाता है:

  1. एक जटिल प्रणाली तक पहुंचने के लिए एक सरल इंटरफ़ेस आवश्यक है।
  2. एक सबसिस्टम के अमूर्त और कार्यान्वयन कसकर युग्मित हैं।
  3. स्तरित सॉफ्टवेयर के प्रत्येक स्तर के लिए एक प्रवेश बिंदु की आवश्यकता है।
  4. सिस्टम बहुत जटिल या समझने में मुश्किल है।

चलो क्लियरट्रिप वेबसाइट का एक वास्तविक शब्द उदाहरण लेते हैं।

यह वेबसाइट बुक करने के लिए विकल्प प्रदान करती है

  1. टिकट
  2. होटल
  3. उड़ानें + होटल

सांकेतिक टुकड़ा:

import java.util.*;

public class TravelFacade{
    FlightBooking flightBooking;
    TrainBooking trainBooking;
    HotelBooking hotelBooking;

    enum BookingType {
        Flight,Train,Hotel,Flight_And_Hotel,Train_And_Hotel;
    }; 

    public TravelFacade(){
        flightBooking = new FlightBooking();
        trainBooking = new TrainBooking();
        hotelBooking = new HotelBooking();        
    }
    public void book(BookingType type, BookingInfo info){
        switch(type){
            case Flight:
                // book flight;
                flightBooking.bookFlight(info);
                return;
            case Hotel:
                // book hotel;
                hotelBooking.bookHotel(info);
                return;
            case Train:
                // book Train;
                trainBooking.bookTrain(info);
                return;
            case Flight_And_Hotel:
                // book Flight and Hotel
                flightBooking.bookFlight(info);
                hotelBooking.bookHotel(info);
                return;
             case Train_And_Hotel:
                // book Train and Hotel
                trainBooking.bookTrain(info);
                hotelBooking.bookHotel(info);
                return;                
        }
    }
}
class BookingInfo{
    String source;
    String destination;
    Date    fromDate;
    Date     toDate;
    List<PersonInfo> list;
}
class PersonInfo{
    String name;
    int       age;
    Address address;
}
class Address{

}
class FlightBooking{
    public FlightBooking(){

    }
    public void bookFlight(BookingInfo info){

    }
}
class HotelBooking{
    public HotelBooking(){

    }
    public void bookHotel(BookingInfo info){

    }
}
class TrainBooking{
    public TrainBooking(){

    }
    public void bookTrain(BookingInfo info){

    }
}

स्पष्टीकरण:

  1. FlightBooking, TrainBooking and HotelBooking बड़ी प्रणाली के विभिन्न उप-प्रणालियां हैं: TravelFacade

  2. TravelFacade नीचे दिए गए विकल्पों में से एक को बुक करने के लिए एक सरल इंटरफ़ेस प्रदान करता है

    Flight Booking
    Train Booking 
    Hotel Booking
    Flight + Hotel booking 
    Train + Hotel booking
    
  3. TravelFacade से पुस्तक एपीआई आंतरिक रूप से उप-प्रणालियों के एपीआई से नीचे कॉल करता है

    flightBooking.bookFlight
    trainBooking.bookTrain(info);
    hotelBooking.bookHotel(info);
    
  4. इस तरह, TravelFacadeउप-सिस्टम एपीआई को उजागर करने के साथ सरल और आसान एपीआई प्रदान करता है।

मुख्य अंश: ( पंकज कुमार का लेखदेव लेख से )

  1. मुखौटा पैटर्न क्लाइंट अनुप्रयोगों के लिए सहायक की तरह अधिक है
  2. मुखौटा पैटर्न को विकास के किसी भी बिंदु पर लागू किया जा सकता है, आमतौर पर जब इंटरफेस की संख्या बढ़ती है और सिस्टम कंपाइल एक्स हो जाता है
  3. सबसिस्टम इंटरफेस फेसडे के बारे में नहीं जानते हैं और उनके पास फेकडे इंटरफेस का कोई संदर्भ नहीं होना चाहिए
  4. इसी तरह के इंटरफेस के लिए मुखौटा पैटर्न लागू किया जाना चाहिए , इसका उद्देश्य एक ही इंटरफ़ेस प्रदान करना है जो कई इंटरफेसों के बजाय एक ही तरह का काम करता है

बेहतर समझ के लिए सोर्समेकिंग लेख पर भी एक नज़र डालें ।


6

एक सरल इंटरफ़ेस का उत्पादन करने के लिए मुखौटा पैटर्न कई अन्य इंटरफेस का एक आवरण है।

डिज़ाइन पैटर्न उपयोगी होते हैं क्योंकि वे आवर्ती समस्याओं को हल करते हैं और सामान्य रूप से कोड को सरल करते हैं। डेवलपर्स की एक टीम में जो समान पैटर्न का उपयोग करने के लिए सहमत होते हैं, यह एक दूसरे के कोड को बनाए रखते समय दक्षता और समझ में सुधार करता है।

अधिक पैटर्न के बारे में पढ़ने की कोशिश करें:

मुखौटा पैटर्न: http://www.dofactory.com/Patterns/PatternFacade.aspx#_self1

या अधिक आम तौर पर: http://www.dofactory.com/Patterns/Patterns.aspx


nileshgule.com/2012/07/facade-design-pattern.html मैंने होम लोन सत्यापन प्रक्रिया के एक उदाहरण के साथ यहां मुखौटा डिजाइन पैटर्न का वर्णन करने की कोशिश की।
नीलेश गुले जुले

6

फ़ैकडे पैटर्न का एक अतिरिक्त उपयोग आपकी टीम के सीखने की अवस्था को कम करने के लिए हो सकता है। मैं आपको एक उदाहरण देता हूं:

आइए हम मान लें कि आपके एप्लिकेशन को एक्सेल द्वारा प्रदान की गई COM ऑब्जेक्ट मॉडल का उपयोग करके एमएस एक्सेल के साथ बातचीत करने की आवश्यकता है। आपकी टीम का एक सदस्य सभी एक्सेल एपीआई को जानता है और वह इसके शीर्ष पर एक मुखौटा बनाता है, जो आवेदन के सभी बुनियादी परिदृश्यों को पूरा करता है। टीम के किसी अन्य सदस्य को एक्सेल एपीआई सीखने में समय बिताने की जरूरत नहीं है। टीम किसी भी परिदृश्य को पूरा करने में शामिल आंतरिक या सभी एमएस एक्सेल वस्तुओं को जाने बिना मुखौटा का उपयोग कर सकती है। यह बहुत अच्छा नहीं है?

इस प्रकार, यह एक जटिल उप-प्रणाली के शीर्ष पर एक सरलीकृत और एकीकृत इंटरफ़ेस प्रदान करता है।


5

मुखौटा का एक और उदाहरण: कहते हैं कि आपका एप्लिकेशन डेटाबेस से कनेक्ट होता है और UI पर परिणाम प्रदर्शित करता है। आप डेटाबेस का उपयोग करके या नकली वस्तुओं के साथ चलाने के लिए, अपने एप्लिकेशन को कॉन्फ़िगर करने योग्य बनाने के लिए मुखौटा का उपयोग कर सकते हैं। तो आप सभी डेटाबेस कॉल को मुखौटा वर्ग में कर देंगे, जहां यह एप्लिकेशन कॉन्फिग को पढ़ेगा और डीबी क्वेरी को फायर करने या मॉक ऑब्जेक्ट को वापस करने का निर्णय करेगा। इस तरह आवेदन db में उपलब्ध नहीं होने के कारण स्वतंत्र हो जाता है।


5

एक मुखौटा सरल कार्यों को उजागर करता है जिन्हें ज्यादातर कहा जाता है और कार्यान्वयन उस जटिलता को छुपाता है जिससे ग्राहकों को अन्यथा निपटना होगा। सामान्य तौर पर कार्यान्वयन कई पैकेजों, कक्षाओं और फ़ंक्शन का उपयोग करता है। अच्छी तरह से लिखित facades अन्य वर्गों की सीधी पहुंच को दुर्लभ बनाते हैं। उदाहरण के लिए जब मैं एटीएम पर जाता हूं और कुछ राशि निकालता हूं। एटीएम छुपाता है कि क्या वह सीधे स्वामित्व वाले बैंक में जा रहा है या क्या वह किसी बाहरी बैंक के लिए बातचीत के नेटवर्क पर जा रहा है। एटीएम कई उपकरणों और उप-प्रणालियों का उपभोग करने वाले एक मुखौटे की तरह काम करता है जो एक ग्राहक के रूप में मुझे सीधे निपटने की आवश्यकता नहीं है।


5

पैटर्न का एक बहुत अच्छा वास्तविक जीवन उदाहरण है - कार स्टार्टर इंजन

ड्राइवरों के रूप में, हम बस चाबी चालू करते हैं और कार चालू हो जाती है। यथासंभव सरल। पर्दे के पीछे, कई अन्य कार सिस्टम शामिल हैं (बैटरी, इंजन, ईंधन, आदि के रूप में), ताकि कार सफलतापूर्वक शुरू हो सके, लेकिन वे स्टार्टर के पीछे छिपे हुए हैं।

जैसा कि आप देख सकते हैं, कार स्टार्टर, फसेड है। यह अन्य सभी कार प्रणालियों की जटिलता के बारे में चिंता किए बिना, इंटरफ़ेस का उपयोग करना आसान बनाता है।

आइए संक्षेप:

मुखौटा पैटर्न बड़े कोड ब्लॉक या एपीआई की जटिलता को सरल और छुपाता है, जो एक क्लीनर, समझने और उपयोग में आसान इंटरफ़ेस प्रदान करता है।


4

एक मुखौटा एक कार्यक्षमता के स्तर के साथ एक वर्ग है जो एक पैकेज या सबसिस्टम में कक्षाओं के सरलीकृत उपयोग की पेशकश करते हुए, टूलकिट और एक पूर्ण अनुप्रयोग के बीच स्थित है। मुखौटा पैटर्न का आशय एक ऐसे इंटरफ़ेस को प्रदान करना है जो सबसिस्टम का उपयोग करना आसान बनाता है। - C # में पुस्तक डिजाइन पैटर्न से निकालें ।


4

मुखौटा एक इंटरफेस इंटरफेस के भीतर एक जटिल सबसिस्टम encapsulating चर्चा करता है। यह सबसिस्टम का सफलतापूर्वक लाभ उठाने के लिए आवश्यक सीखने की अवस्था को कम करता है। यह अपने संभावित कई ग्राहकों से सबसिस्टम को डिकूप करने का भी वादा करता है। दूसरी ओर, अगर मुखौटा सबसिस्टम के लिए एकमात्र एक्सेस प्वाइंट है, तो यह उन विशेषताओं और लचीलेपन को सीमित कर देगा, जिनकी "पावर उपयोगकर्ताओं" को आवश्यकता हो सकती है।

स्रोत: https://sourcemaking.com/design_patterns/facade


3

एक सॉफ्टवेयर पैटर्न सॉफ्टवेयर डिजाइन में दिए गए संदर्भ के भीतर आमतौर पर होने वाली समस्या के लिए एक सामान्य पुन: प्रयोज्य समाधान है।

मुखौटा डिजाइन पैटर्न एक संरचनात्मक पैटर्न है क्योंकि यह कक्षाओं या संस्थाओं के बीच संबंध बनाने के लिए एक तरीके को परिभाषित करता है। मुखौटा डिज़ाइन पैटर्न का उपयोग सरलीकृत इंटरफ़ेस को अधिक जटिल सबसिस्टम में परिभाषित करने के लिए किया जाता है।

बड़ी संख्या में अन्योन्याश्रित वर्गों के साथ काम करते समय, या कई तरीकों के उपयोग की आवश्यकता वाले वर्गों के साथ, खासकर जब वे जटिल होते हैं, जिन्हें समझना मुश्किल होता है। मुखौटा वर्ग एक "आवरण" है जिसमें सदस्यों का एक सेट होता है जो आसानी से समझ में आता है और उपयोग करने में सरल होता है। ये सदस्य कार्यान्वयन विवरण को छिपाते हुए, निरस्त उपयोगकर्ता की ओर से सबसिस्टम तक पहुँचते हैं।

विशेष रूप से डिज़ाइन किए गए सबसिस्टम को रैप करते समय मुखौटा डिज़ाइन पैटर्न विशेष रूप से उपयोगी है लेकिन स्रोत कोड अनुपलब्ध है या मौजूदा इंटरफ़ेस व्यापक रूप से उपयोग किए जाने के कारण इसे फिर से तैयार नहीं किया जा सकता है। कभी-कभी आप विभिन्न उद्देश्यों के लिए कार्यक्षमता के सबसेट प्रदान करने के लिए एक से अधिक पहलुओं को लागू करने का निर्णय ले सकते हैं।

मुखौटा पद्धति का एक उदाहरण एक व्यावसायिक अनुप्रयोग के साथ एक वेब साइट को एकीकृत करने के लिए है। मौजूदा सॉफ़्टवेयर में बड़ी मात्रा में व्यावसायिक तर्क शामिल हो सकते हैं जिन्हें एक विशेष तरीके से एक्सेस किया जाना चाहिए। वेब साइट को इस व्यावसायिक तर्क तक केवल सीमित पहुंच की आवश्यकता हो सकती है। उदाहरण के लिए, वेब साइट को यह दिखाने की आवश्यकता हो सकती है कि बिक्री के लिए कोई आइटम सीमित स्तर के स्टॉक तक पहुंच गया है या नहीं। मुखौटा वर्ग की IsLowStock विधि यह इंगित करने के लिए बूलियन मान लौटा सकती है। पर्दे के पीछे, यह विधि वर्तमान भौतिक स्टॉक, आने वाले स्टॉक, आवंटित वस्तुओं और प्रत्येक आइटम के लिए निम्न स्टॉक स्तर को संसाधित करने की जटिलताओं को छिपा सकती है।


2

सभी डिज़ाइन पैटर्न कुछ वर्गों में किसी न किसी तरह से व्यवस्थित होते हैं जो एक विशिष्ट अनुप्रयोग के अनुकूल होते हैं। मुखौटा पैटर्न का उद्देश्य किसी ऑपरेशन या संचालन की जटिलता को छिपाना है। आप एक उदाहरण देख सकते हैं और http://precivelyconcise.com/design_patterns/facade.pp से मुखौटा पैटर्न सीख सकते हैं


2

इसके बस एक आवरण बनाने के लिए कई तरीकों को बुलाओ। आपके पास ए (एक्स) और वाई () और बी क्लास में विधि के (ए और जेड) के साथ ए वर्ग है। आप एक बार में x, y, z को कॉल करना चाहते हैं, यह करने के लिए कि फसेड पैटर्न का उपयोग करके आप बस एक फेकड क्लास बनाते हैं और एक विधि बनाते हैं जिससे xyz () कह सकते हैं। प्रत्येक विधि (x, y और z) को व्यक्तिगत रूप से कॉल करने के बजाय आप केवल मुखौटा विधि के आवरण विधि (xyz ()) को कॉल करते हैं जो उन विधियों को कहते हैं।

समान पैटर्न रिपॉजिटरी है, लेकिन यह मुख्य रूप से डेटा एक्सेस लेयर के लिए है।


1

यह मूल रूप से सिंगल विंडो क्लीयरेंस सिस्टम है। आप किसी भी कार्य को किसी अन्य कक्षा में विशेष विधि को सौंपेंगे।


1

मुखौटा डिजाइन पैटर्न संरचनात्मक डिजाइन पैटर्न के अंतर्गत आता है। संक्षेप में, बाहरी रूप का मतलब है। इसका मतलब यह है कि फेकडे डिज़ाइन पैटर्न में हम कुछ छिपाते हैं और केवल वही दिखाते हैं जो वास्तव में क्लाइंट की आवश्यकता होती है। नीचे ब्लॉग पर और अधिक पढ़ें: http://www.sharepointcafe.net/2017/03/facade-design-pattern-in-aspdot.html


1

मुखौटा पैटर्न सबसिस्टम इंटरफ़ेस समूह को एक एकीकृत इंटरफ़ेस प्रदान करता है। मुखौटा एक उच्च-स्तरीय इंटरफ़ेस को परिभाषित करता है, जो सबसिस्टम के साथ काम को सरल करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.