- 博客(7)
- 收藏
- 关注
原创 状态模式的高效运用-3
在标准State模式的实现中,有几个地方让人觉得不爽。首先,所有状态对象要处理的消息都必须在抽象状态类中申明;其次由于所有消息处理函数都是虚拟函数,一方面虚拟函数表占用内存,另一方面增加了调用的间接性,导致效率有所降低(当然这是相对的,也可能不是什么大问题)。在实际运用当中,有一种公认的比较高效的状态机实现,其核心就是:把状态当成成员函数(指针)!此话怎讲?还是看看代码来得直接。在:《
2005-09-06 23:07:00
1547
原创 一个类成员函数指针的应用例子
在C++平静的海面底下,隐藏着许许多多暗礁,而类成员函数指针绝对是其中最险恶的之一。所以如果不幸碰到它,那么一定要打醒十二分精神,这是我的小小体会。 下面来看看一个简单的例子。 class Base { public: Base () : f_(0) {} virtual ~Base() {} public: typedef voi
2005-09-02 21:37:00
6389
原创 状态模式的高效运用-2
状态机的实现好坏,往往是一个非常关键的问题。采用前面介绍的方式来实现有限状态机,往往只适用于状态比较少、消息处理、状态跃迁比较简单的情况;对于比较复杂的应用,这样做往往会导致状态之间紧密耦合,扩展不易。在这种代码中往往充斥着大量的状态扩展变量,并且杂散在各个偏僻角落,同时状态处理需要的数据一般而言对所有状态都是全局共享的,也就是说所有状态共享一个Context,数据很容易被不经意的破坏,维护这样的
2005-09-02 21:36:00
1760
原创 状态模式的高效运用-1
状态模式是GoF23个模式中最常用的之一,这篇小文不打算涉及方方面面的内容,只想在状态模式的高效运用方面谈一下自己的心得体会。状态模式是用来设计状态机的,因此下面的叙述中将它们等同理解。有关状态机设计方面的书籍,我这里隆重推荐一本:《Practical Statecharts in C/C++ Quantum Programming for Embedded Systems》,中文名叫做《
2005-08-29 21:54:00
1271
原创 Factory Method模式在框架中的运用
侯捷老师说过:99.99999%(没错,总共7个9)的程序员终其一生也不需要编写一个应用框架。他是对的,但我想框架也有大小之分,侯老师指的应该是MFC之类的大框架,对于一些比较小、比较简单,用于特定用途的框架,我觉得即使平凡如我者,也可以一展身手,否则又怎么知道自己有多少斤两呢?开发一个框架确实非常复杂,但对自己却是一个很好的历练,所以不要怕,尽管试试吧!由于工作的需要,我开发过一个框
2005-08-24 20:56:00
859
原创 一个Command模式的应用例子
我曾经写过一个小软件,故事是这样的:我们公司有一些设备在外面运行,有一天我接到一个任务,要求我编写一个算法对系统进行控制,改善系统的性能。根据大家的讨论很快制订了算法,我也很快编码完毕。但问题来了,我怎样进行测试,怎样验证这个算法呢?我可以在家里进行仿真,模拟系统的真实运行情况,但仿真终归仿真,我对算法是否真正有效心里没底;我更加不可能拿到外面测试,那可是商用系统,万一出了纰漏我可担当不起。
2005-08-24 20:55:00
1676
原创 Hello,World!
很久以来,我一直习惯在网络里面潜水,就象一个超然的旁观者。因此当我申请这个Blog的时候,我自己也觉得讶异,可能是有些什么东西在我心里涌动吧。 我把这个Blog当成一个自言自语的地方。我是一个非常平凡的软件工程师,在这里我会写一些工作中的所思所想,更会在我感兴趣的领域(例如C++、STL、设计模式等)发表一些高见或低见。我已经差不多有十年工作经验了,我希望这些经验教训能够分享
2005-08-24 20:53:00
725
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人