自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhanglifu081022的专栏

知识共享 共同进步

  • 博客(10)
  • 收藏
  • 关注

原创 C++设计模式之抽象工厂(Abstract Factory)模式

抽象工厂模式,是使得用户接口与实际的对象生成相分离,用户使用统一的接口时,系统根据用户的设置或环境,生成出不同的对象。比如我们的电脑系统,创建窗口时统一使用接口CreateWindow,创建滚动条时使用CreateScrollBar,但是系统在我们设置不同的主题风格时,对生成出来的窗口和滚动条有不同的表现,也就是生成了不同的对象。如下图所示,Factory就是面向用户的接口,只有创建窗口和滚动

2013-10-29 23:10:16 577

原创 mysql procedure使用笔记

这几天用MySQL做了一些非常复杂的数据操作,毕竟不是DBA,其中碰到了很多问题,幸好有众多网友大方地共享了他们的知识,在网上查到不少资料,加上自己的各种尝试,问题最终得以顺利解决。1、关于count的使用count是用于统计某一个符合条件的数据的条数的。比如StudentInfo有如下数据:ID ClassIDStudentID1 112 123 13

2013-10-24 00:31:50 670

原创 C++设计模式之代理(proxy)模式 -- 伪代理

前面写了代理模式的一种使用方式——句柄,接下来要介绍伪代理。我们在浏览比较大的word文档或PDF文档是,常常会遇到这种情形:前面看过和当前看的部分显示正常,当我们将鼠标按住滚动条迅速往下翻页的时候,会发现后面的文档还在加载,或者文字已经出来了,但图像还在处理,当然,这是在电脑配置比较低的情况下才能见证的。那么这是为什么?难道不是打开文件的时候全部内容都解析出来吗?或者将文字解析出来的部分也把

2013-10-23 00:07:19 563

原创 C++设计模式之代理(proxy)模式 -- 句柄

代理模式,个人认为用的比较多的实现方式为句柄和伪代理。一、句柄所谓句柄,就是可以用一个句柄类对象去操作一个或多个对象,而不用关心操作对象的实现。我们可能对遇到这种情况:对于操作的每种情形,都具有相似或相同的接口,但接口的具体操作不相同,而对于类用户来说,并不想知道你的每种实现类,只想用一个对象和一组接口进行操作。这个时候,比较好的解决方法是句柄。实例:对一个游戏来说,可能有几种不同的战

2013-10-22 22:56:22 949

原创 C++设计模式之单例(Singleton)模式

单例模式,是一个相对简单且常用的一个设计模式,也许我们一直都在使用,只是不知道这就是单例模式。我们在大型工程中,为了让程序更具拓展性,且方便策划进行数值微调等,都会将一些内容写到一个配置文件中(常见的是XML配置文件)。程序负责解析配置文件,并根据配置内容作出相应的操作。但是,配置文件一般调配好后很少改动,且解析配置文件需要耗费一定的资源(时间、存储空间等),一般不会写一个解析类,每次需要用的时候

2013-10-22 00:12:35 689 2

原创 C++设计模式之装饰(Decorator)模式

理论不多讲,直接上例子吧:在一些赛车类游戏中,我们可以对自己的进行装饰(实际就是贴图),比如有一辆黑色的tubo911,我要将其进行喷漆弄成红色,过了一段时间,我又想将其喷成墨绿色,这样的功能怎样设计呢?可能我们第一想到的是用子类来拓展这样的功能,但是假如喷涂的顺序会对效果产生影响呢,就会发生子类爆炸的问题:黑色车涂红色、黑色车涂墨绿、黑色车先涂红色再涂墨绿、黑色车先涂墨绿再涂红色,每种效果都要创

2013-10-21 23:23:52 688

原创 螺旋矩阵

这几天在看帖时看到比较多的面试题,其中有一个是螺旋矩阵的编程题,没事就用C++写了一个。所谓螺旋矩阵,就是从矩阵的第一行第一列开始,沿着某个方向用不断增加的数值依次填充矩阵,遇到边界或已填充的值则进行转向,直到将整个矩阵填满。如下是维数为6的螺旋矩阵:1   2   3   4   5   620  21  22  23  24  719  32  33  34  25  81

2013-10-15 22:08:29 668

原创 MySQL procedure存储过程示例

前面讨论过,在做排行榜数据更新时,比较适合使用存储过程,原因有以下几点:        1、生成存储过程时将要执行的数据库语句编译后存入数据库,避免每次执行都要编译的麻烦,提高效率。        2、存储过程可以在需要的时候随时调用简单的 call basename.procname() 语句即可,方便调试与测试。        3、可以与程序交互,调用返回时表示存储过程执行完毕,如

2013-10-14 23:06:39 653

原创 利用批处理实现一键搞定SVN更新、CMake生成工程文件、VS打开sln、开文件夹的偷懒目的

以前每天到公司的都有一系列很繁琐的东西要做:开工程文件夹、SVN更新、用CMake更新工程文件、用VS开sln、编译。。。这些动作都是有先后顺序的,前者完成之后才能开始后者,这样就浪费的大量时间在等待上,如果能够一键搞定就好了。可以说是要偷懒,也可以说是要提高工作效率,自然就会去想办法让这一系列的动作自动化,由于是windows平台,就考虑用bat批处理来搞定。    我的结构是:OneKey

2013-10-14 11:28:06 3948

原创 MySQL event 计划任务示例

在开发过程中遇到过排行榜的问题,曾经想用 mysql 的 event 计划任务去做,每天让数据库定期更新数据,程序只需要拉更新后的数据即可。但是,这有几个问题:1、如果数据量很大的话,数据库的执行时间是不确定的,而 mysql 似乎没有主动通知程序的机制,这就让程序很被动,什么时候去拉数据合理呢?2、mysql 的 event 机制是在执行之后会计算当前到下次执行中间还需多少秒,计算一次数

2013-10-13 23:50:13 2272 3

空空如也

空空如也

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

TA关注的人

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