【发布时间】:2014-05-18 08:47:58
【问题描述】:
我有以下类结构: 包含一些常见成员(/字段)的基类“消息”, 'Imessage' 接口有一些所有消息都应该实现的方法, 许多不同的消息类扩展(继承)了基本的“消息”类并具有许多字段,每个消息类型的枚举和一个工厂类,给定一个枚举创建正确消息类的实例。
问题是我不确定在哪里/如何实现每个消息类的值设置。 它不能在它的构造函数中,因为在工厂方法中我需要构建通用实例。 我应该为每条消息实现一个“创建”方法来设置它的所有成员吗?
public static Message buildMessage(MessageType messageType)
{
Message message = null;
switch (messageType) //TODO: add all messages!
{
case CONNECT:
message = new ConnectMessage();
break;
case CONNECT_RESPONSE:
message = new ConnectResponseMessage();
break;
case DISCONNECT:
message = new DisconnectMessage();
break;
case FLOWSTART:
message = new FlowStartMessage();
break;
default: return null;
}
return message;
}
【问题讨论】:
-
你能从构造函数中解释一下通用问题吗?举个例子还是别的?
标签: java design-patterns constructor factory