Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 消息队列服务包装器的设计模式_Design Patterns_Rabbitmq_Zeromq_Amazon Sqs_Mq - Fatal编程技术网

Design patterns 消息队列服务包装器的设计模式

Design patterns 消息队列服务包装器的设计模式,design-patterns,rabbitmq,zeromq,amazon-sqs,mq,Design Patterns,Rabbitmq,Zeromq,Amazon Sqs,Mq,我想设计一个与消息队列f对话的包装器。包装器的实现应该足够通用,这样库的客户机如果想要从一个MQ提供者(例如RabbitMQ)切换到另一个MQ服务(例如AmazonSQS),就不必进行任何代码更改 您会为库推荐什么设计模式?为什么?您正在寻找设计模式 假设您有两种排队技术:Q1和Q2。它们中的每一个都提供了与之交互的不同方法。类设计如下所示: 使用通用方法创建一个接口,比如说IQueue。例如,getMessage()、postMessage()和deleteMessage() 对于Q1,创建

我想设计一个与消息队列f对话的包装器。包装器的实现应该足够通用,这样库的客户机如果想要从一个MQ提供者(例如RabbitMQ)切换到另一个MQ服务(例如AmazonSQS),就不必进行任何代码更改

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

您正在寻找设计模式

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

  • 使用通用方法创建一个接口,比如说
    IQueue
    。例如,getMessage()、postMessage()和deleteMessage()
  • 对于Q1,创建一个由Q1客户端和扩展
    IQueue
    组成的适配器。类似地,对于Q2
  • 将应用程序编码到IQueue。然后,从Q1切换到Q2只需要将一个适配器类替换为另一个适配器类
您正在寻找设计模式

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

  • 使用通用方法创建一个接口,比如说
    IQueue
    。例如,getMessage()、postMessage()和deleteMessage()
  • 对于Q1,创建一个由Q1客户端和扩展
    IQueue
    组成的适配器。类似地,对于Q2
  • 将应用程序编码到IQueue。然后,从Q1切换到Q2只需要将一个适配器类替换为另一个适配器类
??