为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,使得这一子系统更加容易使用。

    image.png

    1. #include<iostream>
    2. #include<memory>
    3. class SubSystem1 final{
    4. public:
    5. void method1() {
    6. std::cout<<"the 1st subSystem func1\n";
    7. }
    8. };
    9. class SubSystem2 final {
    10. public:
    11. void method2() {
    12. std::cout<<"the 2nd subSystem func2\n";
    13. }
    14. };
    15. class SubSystem3 final {
    16. public:
    17. void method3() {
    18. std::cout<<"the 3rd subSystem func3\n";
    19. }
    20. };
    21. class Facade {
    22. public:
    23. Facade() = default;
    24. void MethodA() {
    25. std::cout<<"Func Group A:\n";
    26. one.method1();
    27. three.method3();
    28. }
    29. void MethodB() {
    30. std::cout<<"Func Group B:\n";
    31. two.method2();
    32. three.method3();
    33. }
    34. private:
    35. SubSystem1 one;
    36. SubSystem2 two;
    37. SubSystem3 three;
    38. };
    39. auto main()->int {
    40. Facade f;
    41. f.MethodA();
    42. f.MethodB();
    43. return 0;
    44. }

    这玩意儿的用途好像有点抽象。。在牛客看到的面试相关只有一家公司的笔试。