为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,使得这一子系统更加容易使用。
#include<iostream>
#include<memory>
class SubSystem1 final{
public:
void method1() {
std::cout<<"the 1st subSystem func1\n";
}
};
class SubSystem2 final {
public:
void method2() {
std::cout<<"the 2nd subSystem func2\n";
}
};
class SubSystem3 final {
public:
void method3() {
std::cout<<"the 3rd subSystem func3\n";
}
};
class Facade {
public:
Facade() = default;
void MethodA() {
std::cout<<"Func Group A:\n";
one.method1();
three.method3();
}
void MethodB() {
std::cout<<"Func Group B:\n";
two.method2();
three.method3();
}
private:
SubSystem1 one;
SubSystem2 two;
SubSystem3 three;
};
auto main()->int {
Facade f;
f.MethodA();
f.MethodB();
return 0;
}
这玩意儿的用途好像有点抽象。。在牛客看到的面试相关只有一家公司的笔试。