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

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

 

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

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

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

 

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

扫描二维码关注公众号,回复: 9320303 查看本文章

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

 

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

 

3. 实现原理

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

 

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

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

 

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

 

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

 

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

 

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

 

4. 结语

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

 

 

发布了38 篇原创文章 · 获赞 19 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/truexf/article/details/2378590