1

我有串行设备可以传输多种类型的消息作为回答。每个消息头代表消息类型。每个消息类型都有它的一组字段。我永远不知道我会收到哪种消息类型。

在我的代码中,每种消息类型都代表类。借助 getMessage 函数返回消息的最佳方式是什么?我可以返回包含具体消息的消息接口或父消息类。但这真的是很好的设计吗?

4

1 回答 1

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;
}

这将是解决该问题的好方法。

于 2013-09-23T11:36:42.500 回答