外观模式

上帝对象:

外观模式为现有对象定义了一个新接口, 适配器模式则会试图运用已有的接口。 适配器通常只封装一个对象, 外观通常会作用于整个对象子系统上。

示例:

#include<iostream>
using namespace std;

class Sub_Work1//子工作1
{
public:
    void Working1()
    {
        cout << "Doing Sub-Work1..." << endl;
    }
};

class Sub_Work2//子工作2
{
public:
    void Working2()
    {
        cout << "Doing Sub-Work2..." << endl;
    }
};

class Sub_Work3//子工作3
{
public:
    void Working3()
    {
        cout << "Doing Sub-Work3..." << endl;
    }
};

class Sub_Work4//子工作4
{
public:
    void Working4()
    {
        cout << "Doing Sub-Work4..." << endl;
    }
};

class Work//总工作,客户与之打交道
{
private:
    Sub_Work1 w1;
    Sub_Work2 w2;
    Sub_Work3 w3;
    Sub_Work4 w4;
public:
    void Work1()//总工作1
    {
        w1.Working1();
        w3.Working3();
    }
    void Work2()//总工作2
    {
        w2.Working2();
        w3.Working3();
        w4.Working4();
    }
};


int main()//client程序
{
    Work w;
    /*******总工作1******/
    cout << "开始调用总工作1" << endl;
    w.Work1();

    /*******总工作2******/
    cout << endl << "开始调用总工作2" << endl;
    w.Work2();

    getchar();
    return 0;
}

输出:

开始调用总工作1
Doing Sub-Work1...
Doing Sub-Work3...

开始调用总工作2
Doing Sub-Work2...
Doing Sub-Work3...
Doing Sub-Work4...




参考:

https://www.guyuehome.com/37693

posted @   double64  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2021-09-17 C# StopWatch 简单使用
2021-09-17 C# 读写配置文件
2021-09-17 C# 匿名方法 和 lambda 表达式
2021-09-17 C# 数组的声明和初始化
2021-09-17 C# 关于继承和多态
2021-09-17 C# switch 语句
2021-09-17 C# 枚举类型
点击右上角即可分享
微信分享提示