1.设计模式

设计模式主要包括一下三种创建者模式,结构模式还有行为模式

2创建者模式

主要包括以下工厂模式,单例模式,原型模式还有抽象工厂模式,最后是建造者模式

2.1工厂模式

简单点说:两个接口,一个食物类接口,一个工厂类接口,工厂接口来进行创建食物,使用工厂进行创建对象

2.2抽象工厂模式

例子就是一个店子可以做咖啡还有甜品,所以继承工厂类,做两个视频,一个咖啡,一个蛋糕

可以看出,每一个工厂类都有做产品a还有做产品b的方法

2.3单例模式

顾名思义就是无论如何,指挥产生一个对象instance,最简单的方法就是私有构造函数,然后使用静态变量生成instance,这届得到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "Singleton.h"
#include <iostream>
using namespace std;

Singleton * Singleton::instance = NULL;
Singleton::Singleton(){

}

Singleton::~Singleton(){
delete instance;
}

Singleton* Singleton::getInstance(){
if (instance == NULL)
{
instance = new Singleton();
}

return instance;
}


void Singleton::singletonOperation(){
cout << "singletonOperation" << endl;
}

2.4建造者模式

这个例子就是工厂工人做每一步,然后最后进行组装

todo:还没写完

3.行为模式

3.1适配器模式

例子:就是电源适配器(欧洲电源需要转接口才能使用),适配器就是转换头

所以我们需要实现欧洲的接口,但是继承国内的充电头,一个impl一个extend

然后在impl里面调用extend函数

3.2桥接模式

主要是减少使用继承类,例如四边形,子类是长方形还有正方形,但是子类还有红色和蓝色的长方形

我们使用颜色类聚类到四边形里面,这样就可以减少子类,所以我们,我们在color里面实现,蓝色还有绿色,

3.3桥接模式

就是代购火车票,方法都一样的,售票处售票,代购店也要售票,代购店售票的方法就是使用售票处的方法

都要实现接口,同时调用真实接口

3.4享元模式

贡献模式,每次调用都是相同的的值,但是修改一些属性而已

主要使用map,来得到相同的元素,map[i]

3.5外观模式

基金经理帮我们来买股票,这样我们就不需自己进行选择股票

3.6装饰模式

就是炒饭+鸡蛋+肉+其他的,因此,炒房还有配料都要继承食物类别

同时配料类还要聚合食物类,这样就可以进行添加配料

decorate是配料类,聚合食物类,设置get set方法,最后的总价价格=this.getprice+this.getfood.getcost

4.行为型模式

4.1策略模式

最简单的模式,直接使用接口实现多个策略就可以,聚合策略就可以

4.2命令模式

简单来说就是命令来控制厨师,让厨师做事,让服务员收拾订单

4.3中介模式

中介这个人看碟子下菜,看对面是什么类型,然后调用不同的交互方法

使用get set方法来把中介者里面.

同时colleagues也要把中介放进去

4.4观察者模式

例子就是订阅公众号,公众号添加用户,公众号推送更新,调用用户更新.使用list添加

subject是公众号,observe是微信用户,公众号的时候添加用户,使用for

4.5状态模式

state是多个状态有电梯运行,电梯停止,电梯开门等多个状态,减少判断switch逻辑