设计模式研究
文章平均质量分 74
skyMountain
skymountain
展开
-
Observer设计模式的陷阱,兼谈C++语言在模式面前的悲哀
前几天,刚写的一个软件崩溃了。跟踪发现是下面函数的问题:void CSubject::OnMsg(CSMSG *pMsg){ for(list::iterator it = m_lstMsgListener.begin(); it != m_lstMsgListener.end(); it ++) { ASSERT( NULL != (*it) );原创 2006-09-19 12:53:00 · 2616 阅读 · 1 评论 -
怎样才算是一个成熟的程序员:从设计模式谈起
一、编程中抽象思维方法的重要性世界非常复杂善变。程序员必须要应对这复杂善变的世界。如何应对?用抽象的方法。人类最重要的思维能力就是抽象的能力,计算机程序无论多智能,到目前为止,还是没有任何抽象能力。设计系统、编写代码、代码演化的过程,必须是一个抽象的过程。不能理解这一句话的程序员,不能称为一个优秀的程序员。解释一下,何为程序员的抽象。程序员的抽象方法,一般指的就是封装。封装什么?封装变化,封装复杂原创 2006-09-29 11:29:00 · 3068 阅读 · 1 评论 -
多线程下的设计模式研究(一):原子对象模式
序言所谓设计模式,不过是人们在编程活动中总结出来的一些常用的、有效的解决方法而已。自从我开始接触设计后,我就时常留意自己的常用的解决方案,希望能将这些解决方法抽象出来,形成模式。现在这一系列文章,是我这几年编码活动的一个总结,也许其中很多谬误,但至少在目前,它对我工作的帮助,起了很大作用。现在整理发表出来,与大家互相切磋。如发现其中不合理的地方,恳请不留情面地指出来。多线程下的设计模式研究(一):原创 2006-10-04 14:10:00 · 2625 阅读 · 1 评论 -
对《原子对象模式》一文的补充
对于多线程程序,我已经习惯于使用原子对象模式(http://blog.csdn.net/skyMountain/archive/2006/10/04/1320443.aspx)来降低死锁的风险。但最近一个项目中,使用了原子对象封装了所有多线程访问的资源,系统竟然死锁了,而且锁住的地方恰好是原子对象内部。经过思考,发现此前我们对原子模式的理解有误,以为只要每个对象的公开接口是线程安全的,就可以算是原原创 2008-01-31 16:16:00 · 1072 阅读 · 0 评论