S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

也谈 设计模式之Observer模式

Posted on 2009-04-06 18:00 S.l.e!ep.¢% 阅读(1787) 评论(3)  编辑 收藏 引用 所属分类: Design Pattern
与其说“也谈”
事实上就是看完,设计模式之Observer模式 的读后感
 大概就是“人云亦云”的意思

在过去的代码中,大概也就只粗略地用了 工厂跟Observer 了
书上和网上的例子看不过少,但实际用起来才发现不是那么回事

void notify(AccountArgs args)
 {
        for(list<IObserver*>::iterator itr = observerList.begin();itr!=observerList.end();itr++)
      
{
             (*itr)->Update(args);
       }

}



在应用中可能有n个参数
     那么会有 n 个 notify版本
    void notify(AccountArgs args1);
    void notify(AccountArgs args1, AccountArgs args2);
    ……
见到有人把参数又定义成了一个个结构, 也有人用了模板函数来调用……

        for(list<IObserver*>::iterator itr = observerList.begin();itr!=observerList.end();itr++)
      
{
             (*itr)->Update(args);
       }
这个循环是阻塞的,如果你没异步实现的话,
如果是一个服务器程序,如果是阻塞的,效率很低


Feedback

# re: 也谈 设计模式之Observer模式   回复  更多评论   

2009-04-06 18:54 by lfly
上午的时候也仔细看了 设计模式之Observer模式 这篇文章,感觉很容易理解,对Observer模式算是有了一个了解。现在看到了 S.l.e!ep.¢%兄的文章,更对具体使用 Observer模式有了一些经验以及需要注意的地方。

# re: 也谈 设计模式之Observer模式   回复  更多评论   

2009-04-06 20:21 by S.l.e!ep.¢%
楼上的,扯谈不要当真啊!那只是个传说~

# re: 也谈 设计模式之Observer模式   回复  更多评论   

2009-04-07 11:16 by lfly
呵呵,明白.

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理