1
我有串口設備,在答案中傳輸幾種類型的消息。每個消息標題代表消息類型。每種消息類型都有一組字段。我永遠不知道我會得到哪種消息類型。getMessage的設計模式
在我的代碼中,每個消息類型都代表類。藉助getMessage函數返回消息的最佳方式是什麼?我可以返回消息接口或父消息類,它將持有具體消息。但是它是否很好設計?
我有串口設備,在答案中傳輸幾種類型的消息。每個消息標題代表消息類型。每種消息類型都有一組字段。我永遠不知道我會得到哪種消息類型。getMessage的設計模式
在我的代碼中,每個消息類型都代表類。藉助getMessage函數返回消息的最佳方式是什麼?我可以返回消息接口或父消息類,它將持有具體消息。但是它是否很好設計?
使用interface
來總結類似結構的幾個classes
是一個很好的設計。
我想你有這樣的結構:像
public class FooMessage implements Message {
public String getType() { return "Foo"; }
public String getFooField() { return fooField; }
/* ... */
}
public interface Message {
public String getType();
}
,然後幾個implemenations所以你getMessage()
方法是這樣的:
public Message getMessage() {
Message message = /* get the next message */;
return message;
}
這將是一個很好的解決這個問題的方法。
是的,我曾經考慮過。我不喜歡只在getMessage()上做instanceOf的事實返回並進行類型轉換。 – vico
@ user1501700那麼,如果你不知道會發生什麼,那麼你就沒有那麼多了。 –