我有一个基于微服务的应用程序。我有一个接收HTTP请求的Broker/Gateway API。然后我还有两个服务Service A和Service B.当Broker API收到消息时,它使用RabbitMQ将它发送到服务。然后在他们中的每一个中,我都应该处理它,并根据消息以不同的方式处理它(执行不同的操作)。处理微服务请求的设计模式
这是我目前正在处理消息的方式:这是有道理使用switch语句,如果我有不超过5
服务A
public string ProcessAsync(Message message)
{
switch (message.EventCode)
{
case "context 1":
return action1();
case "context 2":
return action2();
case "context 3":
return action3();
case "context 4":
return action4();
case "context 5":
return action5();
default:
throw new Exception("Unknown message event code!");
}
}
- 10种不同的消息类型。但在我的应用程序中,我有30个。编写这样一个大条件语句是丑陋的,不同于维护。我正在寻找一种将从应用程序中删除此问题的设计模式。你有什么想法?你怎么看国家模式?
https://sourcemaking.com/refactoring/replace-conditional-with-polymorphism – jaco0646