设计模式(六)外观模式(Facade Pattern)

key:外观模式有效的隔离内部复杂的子系统

外观模式有效的隔离了内部复杂系统和外部应用请求,封装了对内部子系统的接口调用,使得外部应用的调用变的更加方便、简单。大大降低了外部应用和内部复杂子系统之间的耦合度,为软件系统的后期维护升级提供了很好的弹性。举例如下,一个tank有很多的子系统,例如通信系统,制动系统,武器系统等复杂的子系统,如果不加以外观,那么使用的时候要生成很多的子系统的对象,然后在调用相应的对象的接口。而如果使用了外观模式,把系统都封装起来,可以通过一个外观对象调用所有的接口,这样,使用起来就会很方便。也会方便以后的维护。

类图如下:

 

 

代码如下:

#include <iostream>
using namespace std;

class CommunicateSys
{
        public:
                void run()
                {cout<<"communicate system run!"<<endl;};
};

class EnginSys
{
        public:
                void run()
                {cout<<"engin system run!"<<endl;};
};

class TankFacade
{
        private:
                CommunicateSys *con;
                EnginSys *eng;
        public:
                void engRun()
                {
                        eng= new EnginSys();
                        eng->run();
                };
                void conRun()
                {
                        con = new CommunicateSys();
                        con->run();
                };
};

int main()
{
        TankFacade *tankFacade = new TankFacade();
        tankFacade->engRun();
        tankFacade->conRun();
        return 0;
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值