青山相待

            白云相爱

            梦不到紫罗袍共黄金带

            一茅斋

            野花开

            管甚谁家兴废谁成败

            陋巷单瓢亦乐哉

            贫,气不改!

            达,志不改!

摘要: 前言 从方向上改变糟糕的代码设计,如果你还是很直白的过程式思维,还在被一大堆的if else,随处可见的for、while所困扰,是时候学习设计模式了。 正文 软件设计中的合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承。 合成和聚合都表示关联的特殊种类。聚合表示一种弱的”拥有“关系,体... 阅读全文
posted @ 2014-07-04 18:32 Leo.Z 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 前言 前两天学习了weak_ptr以后还是不甚明了,一则需要实际应用去锤炼,二来就是不懂观察者模式。 正文 观察者模式又叫发布-订阅模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,这个主题对象在状态发生改变时,会通知所有的观察者对象,使他们能够自动更新自己。通过一张visi... 阅读全文
posted @ 2014-07-04 16:44 Leo.Z 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 说明 操作系统维护malloc和free的基本原理是通过一个链表来记录的,每次malloc和free都有不小的开销,随着系统内存碎片化的加剧而开销增加,程序中可以通过申请一块大内存并自行分配的方式减少malloc和free操作,提供程序效率。提供一种简单内存池的方案供大家品鉴。 设计思路 1.已知... 阅读全文
posted @ 2014-07-04 12:39 Leo.Z 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 说明 本篇文章旨在讨论一些技术模型或者解决方案,从某一个侧面看技术的应用。 正文 1.即时战略游戏的AI设计 有没有想过WAR3的AI是怎么设计的,有木有想过做一款战略游戏的AI呢?AI的设计要基于游戏的架构:时间驱动模型或事件驱动模型,通常事件驱动的游戏可以用有限状态机的方式进行设计,或者扩展一... 阅读全文
posted @ 2014-07-04 11:48 Leo.Z 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 前言 C++有不少陷阱或者容易失误的地方,稍不注意就会导致程序bug。 正文 1.无符号数和有符号数比较 #define只是简单的文本替换,如果替换的是简单数值,默认是int,和unsigned int比较或者位操作会隐式类型转换,结果可能不是我们期望的。 2.case和break配对出现 swi... 阅读全文
posted @ 2014-07-04 11:25 Leo.Z 阅读(419) 评论(0) 推荐(0) 编辑