方友松的技术blog

信息技术之价值不仅体现于提高既有的业务效率;更重要的,是其本质:创造管理的智慧,推动行为的不断创新与超越!

用户操作
[即时聊天] [发私信] [加为好友]
方友松ID:truexf
78066次访问,排名1273好友0人,关注者0
truexf的文章
原创 120 篇
翻译 0 篇
转载 9 篇
评论 40 篇
Fey的公告

灌水光荣,偷盗可耻

关于
fangyousong@gmail.com
最近评论
sap99:www.sap99.com/,SAP99资料多多

SAP免费资料下载
http://www.sap99.com

有很多的学习资料,推荐一下,
sgear:交换个链接把

我的http://blog.csdn.net/sgear

同意的话在我blog里留个脚印。我会把你添加上的。
Lost_Painting:錯誤一大把啊... ...
CoolSlob:呵呵,会吹牛的人都活得好,这是现实。
半截:城管这行当,没有特别的监督管理部门.
象我这行多少还有个叫文明执法,热情服务的说法.

一个管理松懈,人员复杂,又有执法权的部门,他们能不骄横?

那么结果只有一个,政府的形象被他们毁了.
文章分类
收藏
    相册
    2006年8月南昌之行
    我要去的地方
    链接
    1. 余秋雨的blog
    2. 老鼠赟赟的blog
    3. 小虫的blog
    4. 平平的blog
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 消息订阅、派送设计模式在“平台-插件”式软件架构设计中的应用收藏

    新一篇: 好的設計:易于擴展且能夠保持簡單、健壯 | 旧一篇: "想象5年后的你"

    消息订阅、派送设计模式在“平台-插件”式软件架构设计中的应用

     

    1. 首先说明一下什么是“平台-插件”式的软件设计。

    顾名思义,“平台-插件”就是先建立一个平台提供底层的基本服务,以这个平台为基础,在后续的开发中,直接以插件的方式插入这个平台中,并且是可拔插的,需要时可以插上,不需要时可以拔掉,这样的设计非常具有灵活性和可扩展性。

    举个例子说,我们的电脑硬件,就是一个非常优秀的“平台-插件”设计的范例。在电脑中,主机板就是“平台”,CPU,内存,硬盘,显卡,声卡,网卡。。。这一系列都是“插件”,有时候主板本身也固化了CPU,也就是把CPU的功能集成在平台中。

     

    2. 再来说明一下什么是消息订阅、派送模式。

    这个模式很容易理解,举个例子:家里给厦门晚报社定了一份厦门晚报(订阅),报社在每天傍晚安排员工将报纸送到家里(派送)。而消息就好比这里的报纸。

     

    这种设计模式与一般的notify(通知)模式要区别一下,他是notify模式的一个限制版本,notify模式不需要订阅,而只有派送,只在某个事件点将这个事件的消息发送给接收者。但接收者并不需要事先订阅,或者说这个订阅的动作并不是一定由接收者预先执行。而消息订阅、派送设计模式要求消息接收者必须先订阅,有订阅才有发送,就像报社不会无缘无故的把报纸送到你家一样。

     

    3. 实现原理

    在以“平台-插件”的设计理念中,消息订阅、派送设计模式非常有用,它最主要的作用是可以大大的降低耦合度,低耦合度本身就带来非常多的好处,诸如效能,可维护性,可扩展性。因此,对我来说,低耦合,接口标准、统一,即插即用是我在软件设计上始终追求的目标。

     

    有了以上的说明,应该已经使我们对“平台-插件”和消息订阅、派送这两个概念有了一个比较感官的,清楚的认识。那么,下一步,我们该怎么设计这个系统呢?

    这里需要在引入几个概念:接口、事件、消息。

     

    接口,就是平台与插件直接的交互口。在这里需要包括插件提供的用于平台向插件发送消息的接口,以及由平台提供的用于插件向平台发送订阅的接口。这个接口再往程序设计上具体化一点,就可以理解为多数OOP语言都支持的语法元素:接口(interface)。

     

    事件:指的是发生在平台上一系列事件,比如系统启动,初始化,用户事件,系统关闭。

     

    消息:在这里即是代表特定事件一个说明串。

     

    平台在这些事件发生的时候,通过查询相应的事件订阅列表中的插件,并将该事件所对应的消息通过插件提供的接口发送给插件。插件收到这些消息的时候就可以执行相应的动作。

     

    4. 结语

    通过以上的说明,我们基本上对“平台-插件”设计理念结合消息订阅、派送设计模式有了一个比较清楚的了解。在一个系统设计工作中,这是已被证明的非常重要和有效的两种设计手段。当然一个好的系统,除了要有了好的设计思想和理论,还需要有务实的行动去实践,一个架构师或设计师的工作需要很多个开发、测试工程师在这个架构上的实践和验证,经过不断考验和磨砺出来的架构,才是一个好的架构。所以一个优秀的架构师或设计师除了要有精湛的研发技术和丰富的设计经验以外,还需要有一颗谦虚的、愿意听取意见的心,须具有很好的团协作精神和团队协作能力。

     

     

     

    发表于 @ 2008年05月04日 09:43:23|评论(loading...)|编辑

    新一篇: 好的設計:易于擴展且能夠保持簡單、健壯 | 旧一篇: "想象5年后的你"

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © Fey