场景如下: 客户会通过sdk传过来原始消息,我现在开发的模块收到消息后会根据配置对该消息进行提取和转换生成新的消息格式,并通过mq传给下游模块。
如果套用一个模式的话应该是用什么呢?
编辑于:2017年6月22日 18:00
可能我没有描述清楚,导致大家误解了,详细描述一下场景:
接收消息
判断该消息是从哪个客户发过来的,并取出该客户在后台的配置
根据配置信息,进行消息的提取和转换,生成新格式的消息
把新消息发送给后端其他模块进行处理
业精于勤,荒于嬉;行成于思,毁于随。
你所完成的功能是一个转换器,限定死要求来的数据的格式,譬如id,type,content,你可以写一个接口,拥有getId,getType,getContent方法,要求实现方必须提供这几个值。经过你的转换器后,得到不同的对象。
我想可以这样来实现:
针对不同的消息,有不同的消息处理器(Handler)来完成对应的功能,消息提取和新消息的生成等;
这些Handler实现了一个共同的接口,后续还可以继续增加新的Handler;
所有Handler形成一个处理链,每个Handler有个match方法来判断是否该由自己处理,不能处理的,交给后续的Handler。
所以我觉得可以考虑责任链模式,策略模式等。
这么简单的需求,adapter,适配一下就可以了
你所完成的功能是一个转换器,限定死要求来的数据的格式,譬如id,type,content,你可以写一个接口,拥有getId,getType,getContent方法,要求实现方必须提供这几个值。
经过你的转换器后,得到不同的对象。
我想可以这样来实现:
针对不同的消息,有不同的消息处理器(Handler)来完成对应的功能,消息提取和新消息的生成等;
这些Handler实现了一个共同的接口,后续还可以继续增加新的Handler;
所有Handler形成一个处理链,每个Handler有个match方法来判断是否该由自己处理,不能处理的,交给后续的Handler。
所以我觉得可以考虑责任链模式,策略模式等。
这么简单的需求,adapter,适配一下就可以了