#include<iostream>
//电脑的例子更形象:
//电脑整机是 CPU、内存、硬盘的外观。有了外观以后,启动电脑和关闭电脑都简化了。
//直接 new 一个电脑。
//在 new 电脑的同时把 cpu、内存、硬盘都初始化好并且接好线。
//对外暴露方法(启动电脑,关闭电脑)。
//启动电脑(按一下电源键):启动CPU、启动内存、启动硬盘
//关闭电脑(按一下电源键):关闭硬盘、关闭内存、关闭CPU
//硬件基类
class Hardware {
public:
virtual void Open() = 0;
virtual void Close() = 0;
};
//cpu
class Cpu : public Hardware {
public:
//实现细节
void Open()override {
std::cout << "cpu is open !\n";
}
void Close()override {
std::cout << "cpu is close !\n";
}
};
//内存
class Memory : public Hardware {
public:
//实现细节
void Open()override {
std::cout << "memory is open!\n";
}
void Close()override {
std::cout << "memory is close !\n";
}
};
//硬盘
class HardDisk : public Hardware {
public:
//实现细节
void Open()override {
std::cout << "harddisk is open!\n";
}
void Close()override {
std::cout << "harddisk is close !\n";
}
};
//主机外观
class Computer {
private:
//主机所拥有的硬件
Hardware* cpu;
Hardware* memory;
Hardware* hardDisk;
public:
Computer() {
//装机 。。给电脑装配硬件
cpu = new Cpu();
memory = new Memory();
hardDisk = new HardDisk();
}
void Open() {
cpu->Open();
memory->Open();
hardDisk->Open();
std::cout << "已开机\n";
}
void Close(){
cpu->Close();
memory->Close();
hardDisk->Close();
std::cout << "已关机\n";
}
};
int main()
{
//组装电脑
Computer* computer = new Computer;
//打开电脑
computer->Open();
//关闭电脑
computer->Close();
system("pause");
return 0;
}
设计模式之外观模式
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、天道酬勤 逮住2019年的尾巴,回归周记。 2019只剩不到两个月的时间,努力完成剩下的计划。(当然,周记计划...
- 运动护肤 1、泡脚 6/7,护肤2次 2、运动:爬山1次,羽毛球1次,散步3次 学习技能 1、学习强国 7/7 2...
- 采用沉淀和水热合成方法制备了氧化钴。采用XRD,电镜,光谱分析等测试手段对所合成的氧化钴进行表征。 只是做了水相反...
- 刚刷完leetcode周赛,只做出了2道题。第三道题就卡住了,感觉应该用图的遍历做,但是有点记不起图的遍历具体实现...