【问题标题】:Design Pattern for a Wrapper to Message Queue Services消息队列服务包装器的设计模式
【发布时间】:2017-02-01 03:34:00
【问题描述】:

我想设计一个包装器来与 Message Queue(s)f 对话。包装器的实现应该足够通用,这样库的客户端如果想从一个 MQ 提供者(例如 RabbitMQ)切换到另一个 MQ 服务(说亚马逊SQS)。

您会为该库推荐哪种设计模式?为什么?

【问题讨论】:

标签: design-patterns rabbitmq zeromq amazon-sqs mq


【解决方案1】:

您正在寻找Adapter 设计模式。

假设您有两种排队技术:Q1 和 Q2。它们中的每一个都提供了不同的方法来与它们交互。类设计如下所示:

  • 使用泛型方法创建一个接口,例如IQueue。例如,getMessage()、postMessage() 和 deleteMessage()。
  • 对于 Q1,创建一个由 Q1-client 组成并扩展 IQueue 的适配器。同样,对于第二季度。
  • 将您的应用程序编码为IQueue。然后,从 Q1 切换到 Q2 只需将一个适配器类替换为另一个。

【讨论】:

    猜你喜欢
    • 2014-02-23
    • 1970-01-01
    • 2011-05-23
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多