我有一個基於微服務的應用程序。我有一個接收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