Eine kurze Einführung in C++-Entwurfsmuster und Darstellungsmuster

黄舟
Freigeben: 2017-01-18 14:52:47
Original
1550 Leute haben es durchsucht

Fassade: Bietet eine konsistente Schnittstelle für eine Reihe von Schnittstellen in einem Subsystem. Dieser Modus definiert eine High-Level-Schnittstelle, die die Verwendung des Subsystems erleichtert.

Zwei Hauptrollen:

Darstellungsklasse Fassade: Wissen, welche Subsystemklassen für die Verarbeitung von Anfragen verantwortlich sind, und Weiterleitung von Kundenanfragen an die entsprechenden Subsystemobjekte.

Subsystem-Sammlung SubSystem: implementiert die Funktionen des Subsystems und verarbeitet Aufgaben, die vom Facade-Objekt zugewiesen werden. Hinweis: Die Unterklasse verfügt über keine Informationen über die Fassade, d. h. es gibt keinen Verweis auf das Fassadenobjekt.

In diesem Artikel wird der Kauf von Fonds als Beispiel verwendet. Kunden müssen lediglich Fonds kaufen und verkaufen (Fassade), und die Vorgänge von Stock 1, Stock 2, Stock 3 usw. (Subsystem) werden von abgewickelt die Fondsgesellschaft.

Testfall:

[code]int main(){
    Fund fund;//基金对象(Facade)
    fund.fundBuy();//stock1 buy stock2 buy stock3 buy
    fund.fundSell(); //stock1 sell stcok2 sell stock3 sell

    return 0;
}
Nach dem Login kopieren

Implementierung des Darstellungsmodus:

[code]//子系统不知道Facade的任何信息
//股票1号
class Stock1{
public:
    void sell(){
        std::cout << "stock1 sell\n";
    }
    void buy(){
        std::cout << "stock1 buy\n";
    }
};
//股票2号
class Stock2{
public:
    void sell(){
        std::cout << "stcok2 sell\n";
    }
    void buy(){
        std::cout << "stock2 buy\n";
    }
};
//股票3号
class Stock3{
public:
    void sell(){
        std::cout << "stock3 sell\n";
    }
    void buy(){
        std::cout << "stock3 buy\n";
    }
};

//基金类是Facade
class Fund{
public:
    Stock1 stock1;
    Stock2 stock2;
    Stock3 stock3;
    void fundSell(){
        stock1.sell();
        stock2.sell();
        stock3.sell();
    }
    void fundBuy(){
        stock1.buy();
        stock2.buy();
        stock3.buy();
    }
};
Nach dem Login kopieren

Wann soll der Darstellungsmodus verwendet werden?

In den frühen Phasen des Designs sollten Sie die beiden unterschiedlichen Ebenen bewusst trennen.

Während der Entwicklungsphase werden Subsysteme aufgrund kontinuierlicher Rekonstruktion und Weiterentwicklung oft immer komplexer.

Bei der Wartung eines großen Legacy-Systems können Sie den hochkomplexen Code oder den schlecht gestalteten Code des Originalsystems verwenden, um eine relativ einfache und übersichtliche Schnittstelle zu verwenden, damit das neue System mit dem Facade-Objekt interagieren kann.

Das Obige ist der Inhalt eines kurzen Verständnisses von C++-Entwurfsmustern und Erscheinungsmustern. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!