我有串行设备可以传输多种类型的消息作为回答。每个消息头代表消息类型。每个消息类型都有它的一组字段。我永远不知道我会收到哪种消息类型。
在我的代码中,每种消息类型都代表类。借助 getMessage 函数返回消息的最佳方式是什么?我可以返回包含具体消息的消息接口或父消息类。但这真的是很好的设计吗?
我有串行设备可以传输多种类型的消息作为回答。每个消息头代表消息类型。每个消息类型都有它的一组字段。我永远不知道我会收到哪种消息类型。
在我的代码中,每种消息类型都代表类。借助 getMessage 函数返回消息的最佳方式是什么?我可以返回包含具体消息的消息接口或父消息类。但这真的是很好的设计吗?
用一个interface
来总结几个classes
类似的结构是一个很好的设计。
我猜你的结构如下:
public interface Message {
public String getType();
}
然后是几个实现,比如
public class FooMessage implements Message {
public String getType() { return "Foo"; }
public String getFooField() { return fooField; }
/* ... */
}
所以你的getMessage()
方法看起来像:
public Message getMessage() {
Message message = /* get the next message */;
return message;
}
这将是解决该问题的好方法。