FacadePattern.cpp 712 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include <iostream>
  2. using namespace std;
  3. class SubSystem1 {
  4. public:
  5. void Operation() {
  6. cout << "SubSystem1 operation..." << endl;
  7. }
  8. };
  9. class SubSystem2 {
  10. public:
  11. void Operation() {
  12. cout << "SubSystem2 operation..." << endl;
  13. }
  14. };
  15. class Facade {
  16. public:
  17. Facade() {
  18. _sub1 = new SubSystem1();
  19. _sub2 = new SubSystem2();
  20. }
  21. ~Facade() {
  22. delete _sub1;
  23. delete _sub2;
  24. }
  25. void OperationWrapper() {
  26. _sub1->Operation();
  27. _sub2->Operation();
  28. }
  29. private:
  30. SubSystem1 *_sub1;
  31. SubSystem2 *_sub2;
  32. };
  33. int main() {
  34. Facade *facade = new Facade();
  35. facade->OperationWrapper();
  36. delete facade;
  37. return 0;
  38. }