【发布时间】:2017-02-01 03:34:00
【问题描述】:
我想设计一个包装器来与 Message Queue(s)f 对话。包装器的实现应该足够通用,这样库的客户端如果想从一个 MQ 提供者(例如 RabbitMQ)切换到另一个 MQ 服务(说亚马逊SQS)。
您会为该库推荐哪种设计模式?为什么?
【问题讨论】:
标签: design-patterns rabbitmq zeromq amazon-sqs mq
我想设计一个包装器来与 Message Queue(s)f 对话。包装器的实现应该足够通用,这样库的客户端如果想从一个 MQ 提供者(例如 RabbitMQ)切换到另一个 MQ 服务(说亚马逊SQS)。
您会为该库推荐哪种设计模式?为什么?
【问题讨论】:
标签: design-patterns rabbitmq zeromq amazon-sqs mq
您正在寻找Adapter 设计模式。
假设您有两种排队技术:Q1 和 Q2。它们中的每一个都提供了不同的方法来与它们交互。类设计如下所示:
IQueue。例如,getMessage()、postMessage() 和 deleteMessage()。IQueue 的适配器。同样,对于第二季度。IQueue。然后,从 Q1 切换到 Q2 只需将一个适配器类替换为另一个。【讨论】: