getMessage的设计模式

时间:2013-09-23 11:30:24

标签: java design-patterns

我有串行设备可以传输多种类型的消息。每个邮件头代表邮件类型。每种消息类型都有它的字段集。我永远不知道我会得到哪种消息类型。

在我的代码中,每种消息类型都代表类。在getMessage函数的帮助下返回消息的最佳方法是什么?我可以返回将保存具体消息的消息接口或父消息类。但它的设计是否很好?

1 个答案:

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

对于这个问题,这将是一个很好的方法。