自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (5)
  • 收藏
  • 关注

原创 设计模式(二十三)interpreter

1.使用场景:在特定领域,变化频繁,但可抽象为某种规则2.定义:给定一个语言,定义他的文法的一种表示,并定义一种解释器,这个解释器使用该表示来解释语言中的句子interpreter设计模式:#include #include #include using namespace std;class Expression {public: virtual int i

2017-07-11 21:21:37 289

原创 设计模式(二十二)command

1.使用场景:将行为请求者和行为实现者解耦,将一组行为抽象为对象,可以实现二者之间的松耦合2.定义:讲一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化。。。command设计模式:#include #include #include using namespace std;class Command{public: virtual void

2017-07-11 21:02:24 266

原创 设计模式(二十一)chain of responsibility

1.使用场景:一个请求->一个接受者2.定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。3.数据结构:链表chain of responsibility设计模式代码#include #include using namespace std;enum class Re

2017-07-11 21:00:56 299

原创 设计模式(二十)visitor访问器

1.使用场景:由于需求的变化,某些类层次结构常常需要添加新的行为,如何在不更改类层次结构的前提下,在运行时根据需要透明地为类层次机构上的各个类动态的添加新的方法2.定义:表示一个作用与某对象结构中的各元素的操作。使得可以在不改变各元素的类的前提下(拓展)作用与这些元素的新操作(变化)3.原则:开放封闭原则4.缺点:要知道被访问类的所有子类,以便确定所有的接口(即被访问的类必须是

2017-07-11 20:59:05 366

原创 设计模式(十九)iterator(于C++过时)

使用场景:1.对于集合对象,不暴露内部结构时,可以让外部客户透明的访问其中包含的元素2.同时使得同一种算法能够在多种集合对象上进行操作定义:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露(稳定)该对象的内部表示3.c++的iterator基于模板。而不是该设计模式iterator设计模式代码:templateclass Iterator{public:

2017-07-11 20:21:22 666

原创 设计模式(十八)composite

1.使用场景:客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构的变化将引起客户代码的频繁变化2.定义:将对象组合成树形结构以表示“部分-整体”的层次结构。composite使得用户对单各对象和组合对象的使用具有一致性。3.应用:处理“树”中的一节点及其子节点composite设计模式代码:#include #include #include #

2017-07-10 22:11:34 257

原创 设计模式(十七)Memento备忘录

1.使用场景:程序回溯到对象之前的某个状态2.定义:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以将该对象恢复到原先保存的状态Memento设计模式代码:class Memento{ string state; //..public: Memento(const string & s) : state(s)

2017-07-10 21:48:04 237

原创 设计模式(十六)state

1.使用场景:某些对象的状态如果发生改变,其行为也会改变如:文档的只读状态2.定义:允许对象在内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为3.类似:strategy协作:Singleton原代码:enum NetworkState{ Network_Open, Network_Close, Network_Connect,};

2017-07-10 21:17:08 226

原创 设计模式(十五)flyweight享元模式

1.使用场景:大量细粒度的对象充斥在系统中2.定义:运用共享技术有效的支持大量细粒度的对象3.目标:降低对象个数4.注意:要根据实际情况确定成本的大小,该设计模式仍有额外的成本flyweight享元模式代码:class Font {private: //unique object key string key; //object sta

2017-07-10 20:50:23 225

原创 设计模式(十四)Singleton

1.使用场景:在某些情况下,某个类只能有一个实例2.定义:保证一个类仅有一个实例,并提供一个该实例的全局访问点3.步骤:-构造函数生命为私有-设置静态变量-考虑多线程的安全(双检查锁由于内存读写reorder并不安全)Singleton设计模式代码:class Singleton{private: Singleton(); S

2017-07-10 20:30:44 217

原创 gdb调试简单入门

1.思维导图:2.文本gdb 简单入门使用过程1.生成程序文件gcc -g main.cpp -o helloworld2.进入gdb调试界面gdb ./helloworld3.断点设置添加断点:命令:b(break)b main(函数名)b main.cpp:12(文件名+行号)b 12(行号)b Object::Create(类名

2017-07-05 23:02:47 466

转载 北上广深单身女子报告

《欢乐颂2》收官,剧中五位身份悬殊、性格各异的女性各自演绎精彩,成为了扎根在一线城市,追逐爱情与事业的单身女性的典范。然而生活永远比艺术更多姿多彩,极光大数据发布《北上广深单身女子图鉴》,用大数据分析一线城市单身女子群像,揭示她们的爱情、消费、生活、娱乐等习惯。以下为报告节选,完整报告请登录至极光官网或微信公众号下载。 极光观点:•     北上广深,魔都女性最难脱单

2017-07-05 14:44:53 661

转载 极光大数据发布王者荣耀研究报告

如果要选一款史上最火游戏,一定非腾讯旗下的《王者荣耀》莫属。依托微信及QQ两大社交平台与自身的卓越品质,《王者荣耀》从公测以来一路高歌猛进,长期霸占手游榜单渗透率、DAU等各项数据魁首,成为了真正的手游王者。近日,极光大数据发布《王者荣耀研究报告》,显示2017年6月《王者荣耀》用户超2亿,渗透率已达22.3%,极光大数据更从DAU、MAU、日新增用户数等数据入手,绘制详细的《王者荣耀》用

2017-07-05 14:42:31 5091

原创 设计模式(十三)mediator

1.使用场景:多个对象互相(复杂)关联交互时,使用“中介对象”来管理对象间的关联关系(集中管理),避免相互交互的对象之间的紧耦合引用关系,从而更好地低于变化,变“多个对象互相关联”为“多个对象和一个中介者关联”2.定义:用一个中介对象来封装(封装变化)一系列的对象交互。中介者使各对象不需要显示的相互引用(编译时依赖->运行时依赖),从而使其耦合松散(管理变化),而且可以独立地改变他们之间的交互

2017-07-05 00:43:44 226

原创 设计模式(十二)adapter

1.使用场景:将一些现存的对象放到新的环境中应用,但是新环境要求的接口是这些现存对象不满足的2.定义:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那类可以一起工作3.应用:遗留代码复用、类库迁移使用adapter模式的代码://目标接口(新接口)class ITarget{public: virtual void p

2017-07-05 00:27:53 196

原创 设计模式(十一)proxy代理模式

1.使用场景:有些对象由于某些原因,直接访问会给使用者、或者系统结构带来很多麻烦2.定义:为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问3.步骤:增加一层间接层4.应用:copy-on-write技术原代码:class ISubject{public: virtual void process();};class RealSubject: pu

2017-07-05 00:04:00 269

原创 设计模式(十)facade门面模式

1.使用场景:组件的客户和组件中的复杂子系统有了过多的耦合(耦合关系比较大)2.定义:为子系统中的一组接口提供一个稳定的界面,该模式定义一个高层接口,客户通过使用高层接口连接系统3.步骤:构造隔离层,客户类只和隔离层交流4.技法:紧耦合->松耦合5.变化:系统的内部组合不变:客户程序的使用接口方案:结构:

2017-07-04 23:46:06 327

原创 设计模式(九)builder

1.使用场景:一个复杂对象,由于需求变化,这个复杂对象的各个部分经常面临着剧烈的变化但将他们组合在一起的算法(流程)却相对稳定2.理论依据:虚函数3.定义:将一个复杂对象的构建与其表示相分离,使得同样的构建过程(稳定)可以创建不同的表示(变化)4.步骤:对不同的固定流程,单独构造虚函数稳定的部分构造一个类5.技法:早绑定->晚绑定6.变化:复杂对象的各个部分不变:整体流

2017-07-04 22:46:09 217

原创 设计模式(八)abstruct factory

1.使用场景:一系列相互依赖的对象的创建工作2.理论依据:虚函数3.定义:提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类4.步骤:工厂方法可以看做是抽象工厂的一个特例5.技法:早绑定->晚绑定6.变化:工厂类含有的纯虚函数的个数不同不变:对多个对象,只创建一个(或固定数目)的工厂基类7.缺点:难以应对新对象的需求变动8.易产

2017-07-03 22:26:12 322

原创 设计模式(七)factory method

1.使用场景:需要创建的对象的具体类型经常变化,多态“new”2.理论依据:虚函数、多态3.定义:用于创建对象的接口,让子类决定实例化哪一个类,使得一个类的实例化延迟(目的:解耦,手段:虚函数)到子类4.步骤:创建工厂基类(含纯虚函数),并创建工厂子类,各工厂子类对应不同的需创建的类型,通过调用工厂基类指针实现多态“new”。5.技法:早绑定->晚绑定6.变化:对应不同的需

2017-07-03 21:18:45 264

矩阵求导完全解析

矩阵求导完全解析https://blog.csdn.net/wxf2012301351/article/details/84989934 配套的代码

2018-12-13

pandas_dataframe入门教程

pandas_dataframe入门教程,关于dataframe的基础教程,供新手入门,老鸟复习/查阅。

2018-11-23

gdb思维导图

gdb思维导图

2017-07-05

Linux网络编程(四)——epoll+多线程实现简单的聊天(linux 服务器端 windows客户端)

Linux网络编程(四)——epoll+多线程实现简单的聊天(linux 服务器端 windows客户端)

2017-06-13

Linux网络编程(四)——多线程实现简单的聊天(linux 服务器端 windows客户端)

Linux网络编程(四)——多线程实现简单的聊天(linux 服务器端 windows客户端)

2017-06-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除