c++/qt设计模式-外观模式

文章中部分内容和思路来自《Head First设计模式》

模式定义

提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

模式类图

典型案例

1.案例说明

在我们使用电脑的过程中,我们只需要按下电源键整个电脑就能正常开机工作。关于机器内部各部件的工作情况我们并不关心,这就是外观模式的一种体现。

2.代码实现

----------

Computer.h

----------

#ifndef COMPUTER_H
#define COMPUTER_H
 
 
class Computer
{
public:
    Computer();
 
public:
    void work();
};
 
#endif // COMPUTER_H

------------

Computer.cpp

------------

#include "Computer.h"
 
#include "Cpu.h"
#include "Disk.h"
#include "Memory.h"
 
Computer::Computer()
{
 
}
 
void Computer::work()
{
    // 是否要放到成员函数,个人感觉没必要
    Cpu cpu;
    Disk disk;
    Memory memory;
    cpu.work();
    disk.work();
    memory.work();
}

-----

Cpu.h

-----

#ifndef CPU_H
#define CPU_H
 
 
class Cpu
{
public:
    Cpu();
 
public:
    void work();
};
 
#endif // CPU_H
 

 

-------

Cpu.cpp

-------

#include "Cpu.h"
 
#include <QDebug>
 
Cpu::Cpu()
{
 
}
 
void Cpu::work()
{
    qDebug() << "cpu work.";
}
 

------

Disk.h

------

#ifndef DISK_H
#define DISK_H
 
 
class Disk
{
public:
    Disk();
 
public:
    void work();
};
 
#endif // DISK_H
 

--------

Disk.cpp

--------

#include "Disk.h"
 
#include <QDebug>
 
Disk::Disk()
{
 
}
 
void Disk::work()
{
    qDebug() << "disk work.";
}
 

--------

Memory.h

--------

#ifndef MEMORY_H
#define MEMORY_H
 
 
class Memory
{
public:
    Memory();
 
public:
    void work();
};
 
#endif // MEMORY_H
 

----------

Memory.cpp

----------

#include "Memory.h"
 
#include <QDebug>
 
Memory::Memory()
{
 
}
 
void Memory::work()
{
    qDebug() << "memery work.";
}
 

--------

main.cpp

--------

/**
 * 设计模式-外观模式
 * 要点:1,外观类 2,分系统类
 */
#include <QCoreApplication>
 
#include "Computer.h"
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    Computer cp;
    cp.work(); // poweron, poweroff
 
    return a.exec();
}
 

 ====================================================================

博主有自己的个人主页啦!请求关注,请求支持。QAQ.

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperYang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值