文章中部分内容和思路来自《Head First设计模式》
模式定义
提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
模式类图
典型案例
1.案例说明
在我们使用电脑的过程中,我们只需要按下电源键整个电脑就能正常开机工作。关于机器内部各部件的工作情况我们并不关心,这就是外观模式的一种体现。
2.代码实现
----------
Computer.h
----------
#ifndef COMPUTER_H#define COMPUTER_Hclass 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_Hclass 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_Hclass 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_Hclass 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.

版权声明:本文为SuperYang_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。