【发布时间】:2017-09-13 13:38:54
【问题描述】:
我有 2 个应用程序:application_1 和 applicaion_2
appplication_1向application_2发送不同类型的消息
有几种类型。我可以声明这些类型的枚举。
enum MessageType{
TYPE_1,
TYPE_2,
...
}
在我使用的 application_2 框架中,建议我编写以下 API
public void handle(Object o){
//logic
}
我在思考如何构建类来分别处理每条消息。
我知道我可以为所有消息声明通用类型:
abstract class AbstractMessage{
MessageType type;
Object o;
//...
}
在application_2 里面的句柄中我可以这样写:
MessageType mt = ((AbstractMessage) o).getType();
switch(mt){
case TYPE_1:
//handle TYPE_1
break;
case TYPE_2:
//handle TYPE_2
break;
....
}
但是这段代码看起来很难看。
请帮助找到更好的解决方案。
【问题讨论】:
-
@Downvoter,请解释一下你不明白的地方。我已准备好改进我的问题。我真的很努力提出明确的问题
-
看来你要找的是Strategy pattern。
-
@Thomas Fritsch,可能是,但你能提供更多细节吗?
-
我在考虑@LorisSecuro 的回答
标签: java oop design-patterns enums polymorphism