概念
Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。为子系统中的一组接口提供一个一致稳定的界面,该模式需要定义一个高层接口,这个接口使得这一子系统更加容易使用
动机
组件的客户和组件中各种复杂的子系统有过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合会面临很多变化的挑战,如何简化外部客户程序和系统间的交互接口?如何将外部客户程序的演化和内部子系统的变化之间的以来相互解耦?
Façade
为调用方, 定义简单的调用接口。
Clients
调用者。通过Facade接口调用提供某功能的内部类群。
Packages
功能提供者。指提供功能的类群(模块或子系统)
适用于:
为子系统中统一一套接口,让子系统更加容易使用。
#include <iostream>
using namespace std;
class SystemA
{
public:
void doThing()
{
cout&