C++
文章平均质量分 64
看不透本质
写点东西
展开
-
行为设计模式之状态模式
状态模式就是用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题. 状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中(用类来表示状态) ,使得对象状态可以灵活变化。生活中很常见,结合下现实生活,很多东西就很容易理解了。原创 2024-05-28 23:55:05 · 736 阅读 · 0 评论 -
行为设计模式之职责链模式
在职责链模式中,多个处理器(也就是刚刚定义中说的“接收对象”)依次处理同一个请 求。一个请求先经过 A 处理器处理,然后再把请求传递给 B 处理器,B 处理器处理完后再 传递给 C 处理器,以此类推,形成一个链条。链条上的每个处理器各自承担各自的处理职 责,所以叫作职责链模式。有点像现实中的很多事情,可以来看看,有兴趣的话。原创 2024-05-28 01:53:40 · 567 阅读 · 0 评论 -
行为设计模式之策略模式
策略模式(strategy pattern)的原始定义是:定义一系列算法,将每一个算法封装起来,并使它们可以相互替换。策略模式让算法可以独立于使用它的客户端而变化。很常用的,我们出门,可以有很多种出行方式,目的都是到达某地,方法多种多样。原创 2024-05-27 00:37:54 · 554 阅读 · 0 评论 -
行为型设计模式之模板模式
模板模式,这里写了模板模式的定义,原理,还有些代码案例,以及优缺点,有兴趣,可以来看看,学习学习。原创 2024-05-26 14:04:31 · 1012 阅读 · 0 评论 -
行为型设计模式之观察者模式
观察者模式(observer pattern)的原始定义是:定义对象之间的一对多依赖关系,这样当一个对象改变状态时,它的所有依赖项都会自动得到通知和更新。身边有不少例子都属于这个,有兴趣,欢迎来看文章啊。原创 2024-05-25 01:29:03 · 511 阅读 · 0 评论 -
结构型设计模式之适配器模式
适配器模式是用来做适配,它将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以一起工作。适配器模式有两种实现方式:类适配器和对象适配器。其中,类适配器使用继承关系来实现,对象适配器使用组合关系来实现。类适配器模式的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。原创 2024-05-23 13:08:42 · 270 阅读 · 0 评论 -
结构型设计模式之装饰模式
装饰模式动态的给一个对象添加一些额外的职责. 就扩展功能而言,装饰器模式提供了一种比使用子类更加灵活的替代方案。在现实中很常见的,比如不同部门,不同员工工作职责不一样,都是在做同一件事,就可以使用这种方法。太多了,不一一列举。原创 2024-05-23 11:39:19 · 764 阅读 · 0 评论 -
结构型模式之桥接模式
这一篇写了桥接模式的概念,原理以及代码示例,有兴趣看看吧,可以一起学习学习。原创 2024-05-21 01:41:39 · 483 阅读 · 0 评论 -
结构型设计模式之代理模式
代理模式挺常见的,而且本文写了一些使用场景,还有一些代码片段,可以学习学习。原创 2024-05-21 01:23:58 · 1275 阅读 · 0 评论 -
创建型模式之单例
单例模式用来创建全局唯一的对象。一个类只允许创建一个对象(或者叫实例),那这个类就是一个单例类,这种设计模式就叫做单例模式 。配合一些源码,我这用了UE中的一些案例。原创 2024-05-17 10:57:04 · 357 阅读 · 0 评论 -
设计模式六大原则之依赖倒置原则
依赖原则指在设计代码架构时,高层模块不应该依赖底层模块,二者都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。可以进去看下图片啊,更形象一点,图有点丑。嘿嘿原创 2024-05-16 11:16:26 · 276 阅读 · 0 评论 -
数据结构与算法===优先队列
优先队列,是一个高于普通队列的数据结构,它是按照优先级存储的。原创 2024-05-14 23:57:32 · 889 阅读 · 0 评论 -
数据结构与算法===递归
递归应用挺广泛的,像之前学过的前序,中序,后序,都可以使用递归来实现。原创 2024-05-11 11:43:37 · 221 阅读 · 2 评论 -
数据结构与算法===贪心算法
贪心,一种很经典的算法,适用场景有限,而且当下的选择不能影响后边的,一旦影响,就不一定是最优。每一步都是最好的,结果未必最优,想象我们自己,生活中是不是这样呢?学习算法,可以更好的适应生活,也是为了更好的生活。原创 2024-05-11 11:24:15 · 492 阅读 · 0 评论 -
C++ 实现一个不能被copy的类
一个小知识点,实现一个不能被copy的函数。其实挺简单的,多练练基础,基础能力提升了,这些都不是什么大问题。原创 2024-05-10 14:07:51 · 379 阅读 · 0 评论 -
为什么大多数编程语言下标都从0开始
大多数编程语言下标都从0开始而不是从1开始这是一个很好的问题,用过好几种编程语言,我也发现大部分都是从0开始的。至于原因吗?一步一步来推导下。原创 2024-04-27 22:01:56 · 294 阅读 · 0 评论 -
锁,数据同步
经常遇到数据同步的问题,具体有哪些情况呢?来聊一聊。我知道的,应该有以下四种,原子操作,中断控制,自旋锁和信号量。原创 2024-04-27 12:27:33 · 183 阅读 · 0 评论 -
UE TArray
简单聊聊RemoveSingle吧,这个主要是找到要删除元素,然后删除,数组长度-1.删除里已经看到了这个,就是Find函数。这个函数很简单了,就是做了一个遍历,去找到要找的元素。当然,operator操作符还有很多,就不一一列举。要去操作元素,必然要先去看看它的主要数据区域。用它取到某个元素,然后配合下图的操作符即可。1.Append函数。原创 2024-04-26 19:06:25 · 279 阅读 · 0 评论 -
写个知识点吧,关于va_list的,也是关于2dx的
说完va_list了,然后,解释一下这个函数的意义吧。该函数也没有别的意思,只是打印出一些日志。不用多解释什么,相信对2dx熟悉的同学都对CCLog很熟悉的。其实,我想具体说一下关于这个函数的整体架构,但是有些东西还没了解清楚。就说到此处了,以免让人误入歧途。有什么不恰当的地方,还请看到的朋友帮忙解释一下。来获取参数表中的各个参数;使用完毕后,使用va_end来结束使用。这段程序,摘自应用在android平台。该程序摘自2dx中的CCCommon.mm中。如上程序,首先,定义一个。先说一下我的了解吧。原创 2014-06-02 23:57:16 · 888 阅读 · 0 评论