- 博客(13)
- 收藏
- 关注
原创 c++命令模式
命令模式 作用及特点:”行为请求者“与”行为实现者“通常呈现一种”紧耦合“。但在某些场合——比如需要对行为进行”记录、撤销、事务“等处理,这种无法抵御变化的紧耦合是不合适的。 Command模式的根本目的在于将”行为请求者“与”行为实现者“解耦,在面向对象语言中,常见的实现手段是”将行为抽象为对象“。 因为命令需要有接收者,命令类和接收者类是关联关系,所以具体命令类在创建的时候,记录一下接收者的指针。命令类是有统一的执行接口,它为纯虚函数,具体的命令类可以对执行接口进行重写。命令类和管理员类为聚合关
2022-04-10 01:08:09 2823 1
原创 观察者模式
观察者模式 作用及特点:两个类有逻辑关系,一个类为主体,另一个类作为观察者,当主体的某一个属性发生变化时,观察者可以根据主体的属性变化做出响应, 一般来说,主体只有一个,观察者可以有好多个,是一对多的关系。 现在马戏团要投喂动物了,假设动物食物的属性可以改变,比如战斧牛排肉很多,是老鹰喜欢吃的食物,老鹰吃完后,剩下带肉的战斧骨头,是老虎喜欢啃的食物,这里食物的属性有个变化。战斧牛排是主体,观察者是老鹰和老虎,当食物属性发生变化时,老鹰和老虎都会做出响应。 主体类 主体类的主要函数为:增加观察者,
2022-04-05 02:22:36 150
原创 2种单例模式+最好单例
单例模式 作用及特点:单例类,顾名思义只会创建一个,例如太阳类,地球类, 一般来说单例类分为两种:懒汉模式和饿汉模式。 因为我们的马戏团比较小,只有一个马戏团管理员,所以我们将 马戏团管理员写成单例类,其实我们在第一篇《注册工厂模式》就使用到了单例模式,不过那个单例是全局函数获取单例,这次我们使用类内定义,开一个静态接口。 线程安全懒汉单例 懒汉模式是第一次调用接口的时候,第一次创建该单例类,因为实例化出来的是静态对象,所以只会被初始化一次。以后每次调用接口,返回值都是第一次调用时初始化的对象。
2022-04-01 16:07:46 471
原创 生产者与消费者模式
生产者与消费者模式 作用及特点:生产者-消费者问题,实际上主要是包含了两类线程,一种是生产者线程用于生产数据,另一种是消费者线程用于消费数据, 一般来说将主线程作为生产者线程,子线程作为消费者线程。
2022-03-31 15:58:37 261
原创 注册工厂模式
注册工厂模式 作用及特点:方便工厂类生成产品类,每次增加一个产品,将创建该产品的函数指针,注册到管理类中,调用工厂类的创建接口,即可返回对应的产品, 一般来说将工厂类作为管理类,产品类作为返回对象
2022-03-30 23:15:45 677
原创 C++常用函数
字符串分割函数 vector<std::string> Split(const std::string& src, const std::string& sep) { std::vector<std::string> strVec; std::string::size_type linepos = 0; std::string::size_type endpos = 0; while (endpos != std::string::npos) { end
2021-12-08 13:16:03 85
原创 C++小知识
c++ 小知识1.指定字符串编码格式 1.指定字符串编码格式 std::string param = u8"我是一个小白兔";//指定utf8编码格式
2020-12-31 15:24:33 156
原创 c语言-链表-贪吃蛇
1. c语言-链表-贪吃蛇 坐标的结构体-COORD COORD c; c.X = x; c.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c); 获取API句柄 HANDLE std_out = GetStdHandle(STD_OUTPUT_HANDLE) //获取控制台输出句柄 设置控制台...
2020-03-08 20:58:08 298
原创 ROS自己保存的命令(依赖-code-还有一些坑)
ROS自己保存的命令(依赖-code-还有一些坑) 1. 添加RS相关依赖,hector-mapping 当你catkin_make使,出现报错,找不到hector-mapping,需要在终端安装这个ros-kinetic-hector-slam包 sudo apt install ros-kinetic-hector-slam ...
2019-06-13 19:46:08 812
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人