C/C++ 设计模式
文章平均质量分 58
设计模式
Johhny Rade
年青
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第十一章 状态模式
1. 状态切换的逻辑1.1 状态机的C实现可以参考如下一个C的状态切换实现,了解何为状态机https://www.cnblogs.com/lihuidashen/p/11510532.html笔者这里抽取其核心设计/*有限状态以及有限事件*/typedef enum{ event_1=1, event_2, event_3, event_4, event_5}EventID; typedef enum { state_1=1, state_2, stat原创 2021-12-29 18:32:25 · 347 阅读 · 0 评论 -
第十章 模板模式
1. 案例引入:泡茶和咖啡泡茶怎么做的?准备茶叶,加点枸杞,冲入沸水咖啡怎么调制?准备咖啡,加点牛奶,冲入沸水对比泡茶和冲咖啡,需要的步骤是不是很类似? 准备XX,加点YY,冲入热水于是,抽象出如下的设计:makeprocess{准备XX;加点YY;冲入热水}makeprocess 提供一套接口的调用顺序,而具体的函数比如准备XX,加点YY交给子类去实现#include <iostream>using namespace std;class MakeD原创 2021-12-26 17:43:23 · 650 阅读 · 0 评论 -
第九章 外观模式
1. 外观模式定义:通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。打开家里各种智能设备,研发者只需要提供几种简单选择给用户即可(而非暴露所有的电子特性)类图:2. 示例代码#include <iostream>#include <string>using namespace std;//符合迪米特法则:一个类尽量少了解其他类//电视机class Television { public: void On() {原创 2021-12-26 15:28:06 · 137 阅读 · 0 评论 -
第八章 适配器模式
xx原创 2021-12-26 15:12:12 · 588 阅读 · 0 评论 -
第七章 命令模式
原创 2021-12-25 15:34:53 · 483 阅读 · 0 评论 -
第六章 单例模式
1. 单例模式核心概念要求对象实例化只允许一次条件构造函数、拷贝构造函数、赋值拷贝拷贝设置为private2. 单例模式实现2.1 懒汉模式 代码#include <iostream>#include <thread> // std::thread#include <mutex> // std::mutexusing namespace std;class SingleInstance{public:原创 2021-12-23 15:40:16 · 363 阅读 · 0 评论 -
第五章 工厂模式
1. 简单工厂模式1.1 设计图示1.2 设计说明简单工厂模式核心: Product* SimpleFactory::create(string type)即:根据输入条件 type ,SimpleFactory构建不同的对象。 virtual Product* SimpleFactory::create(string type) { if(type=="ProductA") return new ConcreteProductA;原创 2021-12-23 13:58:29 · 508 阅读 · 0 评论 -
第四章 装饰模式
1. 模式导言前置条件咖啡市场的竞争十分激烈,新的咖啡豆和咖啡口感层出不穷假设,使用Beverage对咖啡进行抽象。我们考虑两个主要的参数,咖啡价格和咖啡描述class Beverage{public:float getcost(void){return cost}string getdesc(void){return desc}private:float cost;string desc;};方案设计我们考虑,每增加一种咖啡豆和配料的组合,我们就增加一种Beverag原创 2021-12-14 15:47:19 · 575 阅读 · 0 评论 -
第三章 观察模式
1. 观察模式考察报纸发行过程,一些家庭向报纸销售商进行了订阅,销售商定期把报纸放到家庭门口家庭购报纸的过程叫做注册过程销售商发行报纸的过程是推送过程销售商和家庭之间是一对多的关系2. 总体设计注意事项:Observer 和 Subject 放在同一个进程中!!!2.1 接口说明registerObserver(Observer& O);输入参数:观察者对象的引用。函数功能:Subject负责把Observer 添加到订阅者列表中removeObserver(Observ原创 2021-12-13 15:19:41 · 317 阅读 · 0 评论 -
第二章 场景模式
场景模式设计说明原创 2021-12-09 16:33:22 · 999 阅读 · 0 评论 -
第一章 数据抽象
数据抽象前言一、Has a二、Association三、inheritance /Generalization前言 细数C++编程思想的数据关系一、Has a 事物之间具有显然的包含关系,使用”Has a“关系,Has a关系有两种,聚合(aggragation)以及组合(composition)composition 当整体不存在时,整体的组成部分也应当被销毁aggragation 当整体不存在时,整体的组成部分可以继续存在如下图示:Unitversity 不存在的时候,部门就应当销毁(原创 2021-06-21 14:51:10 · 308 阅读 · 0 评论
分享