我有2級的應用:application_1
和applicaion_2
如何用多態性替換交換機?
appplication_1
發送不同類型的消息,以application_2
有幾種類型。我可以聲明這些類型的枚舉。
enum MessageType{
TYPE_1,
TYPE_2,
...
}
在application_2框架我用的建議我寫下面的API
public void handle(Object o){
//logic
}
我想了解如何構建類來分別處理每個消息。
我明白,我可以爲所有郵件聲明常見類型:
abstract class AbstractMessage{
MessageType type;
Object o;
//...
}
和application_2
內把手,我可以寫水木清華這樣的:
MessageType mt = ((AbstractMessage) o).getType();
switch(mt){
case TYPE_1:
//handle TYPE_1
break;
case TYPE_2:
//handle TYPE_2
break;
....
}
但這個代碼看起來醜陋。
請幫助找到更好的解決方案。
@Downvoter,請解釋一下你不明白的地方。我準備好改進我的問題。我真的努力問清楚的問題 – gstackoverflow
看起來你在尋找的是[策略模式](https://en.wikipedia.org/wiki/Strategy_pattern#Java)。 –
@Thomas Fritsch,可能會但你能提供更多的細節? – gstackoverflow