标签:star down end rri 隐藏 系统 外观 github str
外观模式: 隐藏系统的细节,只向客户端提供一个可访问系统的接口. 属于结构型模式,通过向现有系统添加一个接口,来隐藏系统的复杂性.
目的: 定义一个高层接口,为子系统中的一组接口提供一个一致的界面,使得子系统更易被使用.
关键代码: 在客户端个复杂系统之间再加一层,这一层将调用顺序\依赖关系处理好.
优点:
缺点:
使用场景:
#include <iostream>
//抽象控件类
class Component {
public:
virtual void Start() = 0;
virtual void Stop() = 0;
};
//子控件
class ComponentA : public Component {
public:
void Start() override {
std::cout << "-----ComponentA Start()-----" << std::endl;
}
void Stop() override {
std::cout << "-----ComponentA Stop()------" << std::endl;
}
};
//子控件
class ComponentB : public Component {
public:
void Start() override {
std::cout << "-----ComponentB Start()-----" << std::endl;
}
void Stop() override {
std::cout << "-----ComponentB Stop()------" << std::endl;
}
};
class Machine {
public:
void Start() {
component_a_.Start();
component_b_.Start();
std::cout << "------Machine Start()------" << std::endl;
}
void Stop() {
component_a_.Stop();
component_b_.Stop();
std::cout << "------Machine Stop()------" << std::endl;
}
private:
ComponentA component_a_;
ComponentB component_b_;
};
int main() {
Machine machine;
machine.Start();
machine.Stop();
return 0;
}
其实很简单...我们写的函数都算是组装了,从广义看也算外观设计模式了...
标签:star down end rri 隐藏 系统 外观 github str
原文地址:https://www.cnblogs.com/xl2432/p/13150860.html