设计模式学习-Facade(外观)

 

意图:为子系统中的一组接口提供一个一致的界面.定义一个高层接口,该接口是的这一个子系统的更加容易使用.

动机:是的子系统之间的通信和相互依赖达到最小,达到该目的的途径之一就是引入一个外观(Facade)对象,它为子系统中较为一般的设施提供了一个单一而简单的界面.

示例图:

facade

Facade作为生态子系统的统一界面用于外接交互

适用性:

为复杂子系统提供一个简单接口

Facade提供了客户与子系统以及其他子系统的分离

为各个自系统提供每层的入口点.

示例代码:

//生态子系统的Facade类作为外部接口的界面,内部子系统的复杂构建不为外界所知
class CEcoSystem
{
public:
    CEcoSystem(void);
public:
    ~CEcoSystem(void);
public:
    void Draw()
    {
        //绘制树林信息
        m_forest->Draw();
    }
    void MadeSound()
    {
        //树林发出声音
        m_forest->MadeSound();
    }
private:
    //CAnimalArray m_animals;
    CForest* m_forest;
};

//外部代码

CEcoSystem sys;
    sys.Draw();
    sys.MadeSound();

//内部复杂实现示例图

facade subsystem

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值