“管道和过滤器”模式中管道的种类

     管道和过滤器模式,与职责链模式相比。一者是适用范围不一样,管道和过滤器模式是在架构层次的模式,它的元素是各个子系统或者程序。而职责链体现了组件间的调用关系。另外一个显著区别是,职责链模式中,一个对象指针的函数调用,就将指令转移到另外一个组件了。而“管道和过滤器”模式存在一个可以用多种技术实现的管道。
    管道
        严格的先进先出,
    消息队列
        非严格先进先出,可以选择性地读取想要的消息
    文件
        不提供同步机制,需要应用程序考虑
    共享内存
        不提供同步机制,需要应用程序考虑
    SOCKET
        适用于跨主机计算
 
    如果单主机情况,消息队列使用的频率较高。由于存在需要传递较大数据体的情况,可以将消息队列和共享内存封装为个性化的“消息队列”。比如实际要传递的数据放在共享内存,而将消息体中记录实际数据在共享内存中的位置。这种方式结合了消息队列的灵活性和共享内存的较高访问速度。
    管道是消息队列的有力竞争对手。性能方面,与消息队列在一个数量级上。但在使用方面,消息队列更加灵活。
    如果对于管道中的数据的正确性和完整性有特别严格的要求,或者要将数据提供给第三方使用,那么通过文件落地管道数据,是更安全的选择。
posted @ 2014-06-10 22:26  水何泱泱  阅读(281)  评论(0编辑  收藏  举报