- 博客(28)
- 收藏
- 关注
原创 第一章信息化和信息系统学习总结1
第一章信息化和信息系统学习总结1一、什么是信息1、信息:是能够消除不确定性的一种客观事物。2、信息量的单位:比特(bit)3、信息的7个质量属性精确性:精准程度完整性:全面程度可靠性:可信任,符合预期及时性:获取信息与事件发生的间隔长短经济性:信息相关成本在可接受的范围内可验证性:可被证实或者证伪的程度安全性:可被非授权访问的可能性二、信息的传输模型1、信息要流动起来了才有价值。2、信息传输模型三、什么是信息系统1、信息系统:输入数据,通过加工处理,产生信息的系统。2、信息
2020-09-28 20:39:43
384
原创 访问者模式
一、定义访问者模式:表示一个作用于某对象结构的各元素的操作。它使你可以再不改变各元素的类的前提下定义作用于这些元素的新操作。二、实现代码三、测试代码四、运行结果...
2020-03-17 13:04:09
135
原创 状态模式
一、定义状态模式: 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。二、实现代码代码中分为3种类型的类实现:A)State抽象基类:主要是用来封装一个状态类需要的接口。B)真实的状态类RealState_x:完成该状态的功能实现与切换到下一个状态。C)Context类:对外开放的接口类,并且负责具体状态类的切换(对每个状态的维护)。 三、测试代码四、...
2020-03-16 19:58:09
112
原创 策略模式
一、定义外观模式:提供一个统一的接口给客户端使用,对于客户端来说,不需要了解该接口是如何访问子系统的接口的。二、实现代码三、测试代码四、运行结果...
2020-03-16 17:09:07
105
原创 中介模式
一、定义用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。二、实现代码三、测试代码四、运行结果五、优缺点优点:各个类中的解耦。缺点:中介类会越来越复杂,会比较难维护。...
2020-03-13 17:59:28
173
原创 代理模式
一、定义代理模式就是为其他对象提供一种代理以控制对这个对象的访问。这样实现了业务和核心功能的分离。二、实现代码三、测试代码四、运行结果五、有什么优缺点A)优点:智能化、高扩展性、职责比较清晰B)缺点:对于客户端来说,增加了代理层,访问数据的时候会相对慢一些。...
2020-03-13 15:54:08
88
原创 装饰者模式
一、定义需要对一个类动态的增加功能,而不需要对原来类进行修改。简言之,装饰者与被装饰者的基类是一样的。二、代码实现三、测试代码四、运行结果五、与适配器模式的区别适配器模式是为了修改类的接口而实现。而装饰者是为了增加原来类的功能,使其更加的完美。...
2020-03-13 10:56:36
63
原创 进程间的通信方式
进程间的通信方式:共享内存,管道,信号量,消息队列,信号,文件锁、套接字socket。一、共享内存1、定义将同一块物理内存映射到不同的进程的虚拟地址空间中,实现不同进程间对同一资源的共享。共享内存是一个临界资源,需要通过信号量或者互斥锁来实现操作的原子性。2、特点A)是最快IPC通信方式。因为是直接在内核中对数据的拷贝的,不需要频繁的从用户态到内核态的切换。B)共享内存是一个临界资源,...
2020-03-12 19:48:32
316
原创 模板方法模式
一、定义模板方法模式是指在基类中将方法的结构定义好,可以在基类实现,也可以不实现。基类中的纯虚函数必须在子类中实现,虚函数的话,子类可视其情况而定。总而言之呢,就是基类定义好方法的骨架,把方法的实现延迟到子类。二、实现代码三、测试代码四、运行结果...
2020-02-28 14:54:12
103
原创 迭代器模式
一、定义迭代器模式:为了遍历容器(聚合对象)内的元素,而不需要暴露容器(聚合对象)内部的表示。迭代器就是提供这种遍历的方法来遍历容器(聚合对象)。二、实现代码代码中分为4部分来实现。Iterator迭代器抽象类,Container容器抽象类,CorrectIterator具体迭代器,CorrectContainer具体容器类。三、测试代码四、运行结果...
2020-02-27 15:56:55
119
原创 原型设计模式
一、定义原型设计模式:实现对原对象的拷贝,这里实现的事深拷贝,就是拷贝了原对象之后,及时原对象修改或者内存释放了,都不会对副本有影响,因为副本有自己独立的内存空间。二、代码实现三、测试代码四、运行结果...
2020-02-27 11:42:23
124
原创 解释器模式
一、定义解释器模式是一个语法解释器(相当于一个翻译官)。给定一个语法,需要定义一个语法规则和一个解释器。解释器根据定义的语法(文法)规则来解释。二、代码实现三、测试代码四、运行结果...
2020-01-17 15:13:55
207
原创 享元模式
一、定义享元模式:Flyweight的内部状态是用来共享的,Flyweightfactory负责维护一个Flyweight池(存放内部状态的对象),当客户端请求一个共享Flyweight时,这个factory首先搜索池中是否已经有可适用的,如果有,factory只是简单返回送出这个对象,否则,创建一个新的对象,加入到池中,再返回送出这个对象.池为重复或可共享的对象、属性设置一个缓冲,称为内部状态...
2020-01-16 17:47:12
104
原创 rapidjson库的Document的writer和prettywriter方法的区别
RapidJSON是腾讯开源的一个高效的C++ JSON解析器及生成器,它是只有头文件的C++库。RapidJSON是跨平台的,支持Windows、Linux、Mac OS X及iOS、Android。writer和prettywriter都是将JSON数据打包为字符串的方法。 1、writer将JSON打包为字符串,将其整个数据打包为一行。 2、prettywriter将JSON打包为字符...
2020-01-16 14:54:07
3063
1
原创 门面设计模式
一、定义门面设计模式:为子系统中的一组接口提供一个一致的界面,门面模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。对外使用一个统一接口,只要通过这个对象就可以实现所有的功能,对用户来说是透明的。二、代码实现三、测试代码四、运行结果...
2020-01-16 11:47:00
130
原创 备忘录模式
一、定义备忘录模式:在不违背封装性的前提下,将类对象的状态数据保存到类对象之外,在需要恢复该对象到保存的状态数据时,直接将这些数据重新加载进去。例如:游戏。我们在玩游戏的时候,游戏数据是保存到一个文件中,当我们退出游戏再进入的时候,需要从文件中恢复数据,然后继续游戏。二、实现代码1、需要保存的数据2、游戏数据3、对保存的数据进行操作三、测试代码四、运行结果...
2019-12-26 21:56:50
112
原创 组合模式
一、定义组合模式:整体与部分的行为必须要是一致的,整体与部分需要继承一个公共的类,这个公共的类是整体与部分共同的行为,通过一个操作可以完成整体的所有部分。就类似于,点、线、面的操纵。二、实现代码三、测试代码四、运行结果...
2019-12-26 17:23:01
93
原创 命令模式
一、定义将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。在OOP中,一切都是对象,将请求封装成对象,符合OOP的设计思想,当将客户的单个请求封装成对象以后,我们就可以对这个请求存储更多的信息,使请求拥有更多的能力;命令模式同样能够把请求发送者和接收者解耦,使得命令发送者不用去关心请求将以何种方式被处理。二、实现代码三、测试...
2019-12-25 20:23:10
82
原创 责任链模式
一、定义责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。二、实现代码20 //消息处理者的抽象类,主要是由消息处理和设置下一个处理者的方法21 class Handler22 {23 public:24 virtual void HandlerReque...
2019-12-25 16:01:40
114
原创 桥梁模式
一、定义桥梁模式:将角色的构建和实现完全分离,使得构建和实现能够随意改变。实现是一个抽象类(接口类),实现类表示的事角色的属性与方法。构建是角色的抽象部分,主要是表示角色能够做什么操作。二、代码实现1、分为Implementer、ImplemenerInstance、Abstraction和RefineAbstraction来实现桥梁模式。A:Implementer:实现角色接口B:I...
2019-12-24 20:43:13
78
原创 适配器模式
一、定义适配器模式:将一个接口转换为用户期望的接口。分为类适配器模式和对象适配器模式两种。二、代码实现1、用户期望的接口(Target)与需要适配的接口(Adapee)1、类适配器模式类适配器模式:是通过public继承来实现对Target类的Print方法实现接口继承,然后通过private继承对Adapee类实现实现继承。2、对象适配器模式:通过public对Target类的P...
2019-12-24 17:56:31
68
原创 工厂模式
工厂模式有三种类型:简单工厂模式、工厂模式和抽象工厂模式~1、简单工厂模式:将运算和工厂分为两个部分,只有工厂类才能决定生产哪一个子类。代码实现如下:测试代码:执行结果如下:2、工厂模式:工厂模式是在简单工厂模式的基础上改的,比起简单工厂模式更加的低耦合。将运算和工厂都抽象为一个接口类,这个时候工厂模式的子类就可以控制创建对象了,运算部分和简单工厂模式一样。代码实现如下:测试代...
2019-12-24 15:04:49
123
原创 单例模式&观察者模式
最近开始学习软件开发的23种模式,今天先总结一下单例模式和观察者模式,其他的会陆续更新~一、单例模式 什么是单例模式呢?单例模式就是这个类中只能有一个全局对象,就像每个班级只会有一个班主任一样。单例模式将类的构造函数设置为私有,提供一个static 对象,和一个static 方法来获取这个对象的方法。c++代码实现如下:测试代码如下:运行结果如下:二、观察者模式首先谈谈什么是观...
2019-12-20 17:36:35
574
1
原创 redis的INFO memory详解
经常使用info memory命令来查看redis的内存情况,但是不知道每个值的含义,下面对info memory的每一个值的含义进行了解释:1、used_memory:通过libc或者jemalloc方法分配的字节数大小2、used_memory_human:将used_memory格式转化为人类可读的值,以MB为单位3、used_memory_rss:常驻集大小(resident set...
2019-12-13 15:49:29
6199
原创 Mysql中踩过的坑
总结一下近期在写入库脚本的时候,在mysql中踩过的坑,希望对大家有帮助~1、用load data插入数据时,解析文件中数据库表字段没有加上反引号,有字段名与数据关键字冲突,导致插入数据时一直报语法错误。如下图:这个报错有点奇怪呀~ 其实是Character字段与mysql中的char(Character)字段导致的。2、mysql入库中文乱码这个问题是因为mysql默认的编码是lati...
2019-12-03 11:22:52
158
原创 makefile的一点心得
makefile的一点心得makefile文件是什么呢?其实呀makefile文件是make命令执行时定义的编译和连接规则的文件。例如:编译parsefile.cpp文件。在这个.cpp文件中需要用到rapidjson的库。编写的makefile文件如下。第一行的parsefile是make编译之后可执行文件的名字,冒号后面跟的是关联的文件,接下来的第二行为make时需要执行的命令。前面的留...
2019-11-28 20:52:03
214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人