我正在製作一個網絡應用程序。這裏是問題:如何使用多態性替換if-else塊
我有一個Messenger類。 Messenger有幾個模塊類,分別稱爲ModuleA,B,C等。 信使發送MessagePacks(給其他信使)。每個MessagePack都有一個模塊目的地,一旦到達Messenger,它就會被轉發到正確的模塊(A,B,C等)。
目前爲了轉發到正確的模塊,我使用了一個if-else檢查MessagePack上的標籤來決定在哪裏轉發。
我想要做的是有MessagePack子類而不是使用標籤(標籤是字符串)。所以TypeAmssage消息去ModuleA等。我能想到做的唯一方法是在MessagePack中有一個Messenger的實例和調用像這樣的方法:Messenger.fowardToModuleA(this);但它沒有任何意義(並可能導致問題)在MessagePack上有一個Messenger實例。
任何人都可以想出一種方法來完成我想要的任務,而不使用if-else檢查標記字符串,最好使用MessagePack子類嗎?
看來你探索訪問者模式,是否正確? –
我不熟悉那個,但現在我讀了它。 – Giannis
也許這可以幫助:http://stackoverflow.com/questions/3672091/dispatch-design-pattern –