我有一个串行设备,可以发送几种类型的应答信息。每个消息头表示消息类型。每个消息类型都有它的一组字段。我不知道我会收到哪种消息类型。
在我的代码中,每种消息类型都表示类。使用getMessage函数返回消息的最佳方法是什么?我可以返回包含具体消息的消息接口或父消息类。但是它的设计漂亮吗?
发布于 2013-09-23 11:36:42
使用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;
}这将是解决这一问题的一个好办法。
https://stackoverflow.com/questions/18958134
复制相似问题