我有串行设备可以传输多种类型的消息。每个邮件头代表邮件类型。每种消息类型都有它的字段集。我永远不知道我会得到哪种消息类型。
在我的代码中,每种消息类型都代表类。在getMessage函数的帮助下返回消息的最佳方法是什么?我可以返回将保存具体消息的消息接口或父消息类。但它的设计是否很好?
答案 0 :(得分:0)
使用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;
}
对于这个问题,这将是一个很好的方法。