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; }
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(); } };
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 (m.sbmmt.com)!