文章详情页
java - 关于设计模式的选择
浏览:166日期:2023-10-30 15:11:11
问题描述
场景如下: 客户会通过sdk传过来原始消息,我现在开发的模块收到消息后会根据配置对该消息进行提取和转换生成新的消息格式,并通过mq传给下游模块。
如果套用一个模式的话应该是用什么呢?
编辑于:2017年6月22日 18:00
可能我没有描述清楚,导致大家误解了,详细描述一下场景:
接收消息
判断该消息是从哪个客户发过来的,并取出该客户在后台的配置
根据配置信息,进行消息的提取和转换,生成新格式的消息
把新消息发送给后端其他模块进行处理
问题解答
回答1:你所完成的功能是一个转换器,限定死要求来的数据的格式,譬如id,type,content,你可以写一个接口,拥有getId,getType,getContent方法,要求实现方必须提供这几个值。经过你的转换器后,得到不同的对象。
回答2:我想可以这样来实现:
针对不同的消息,有不同的消息处理器(Handler)来完成对应的功能,消息提取和新消息的生成等;
这些Handler实现了一个共同的接口,后续还可以继续增加新的Handler;
所有Handler形成一个处理链,每个Handler有个match方法来判断是否该由自己处理,不能处理的,交给后续的Handler。
所以我觉得可以考虑责任链模式,策略模式等。
回答3:这么简单的需求,adapter,适配一下就可以了
标签:
java
相关文章:
1. css - 文字排版问题,内容都是动态抓出来的,字数不一定。如何对齐啊2. git - 在web应用分布式部署的情况下怎么进行配置更新3. css3 - 微信前端页面遇到的transition过渡动画的bug4. 网页爬虫 - 关于Python的编码与解码问题5. 前端 - WebStrom安装了angularjs插件,但是没有语法提示6. 微信开放平台 - ios APP能不能打开微信然后通过微信跳转到指定的URL?7. selenium-selenium-webdriver - python 将当前目录加入到 环境变量8. css - input间的间距和文字上下居中9. javascript - imgzoom插件所引发的bug血案!!!!10. php ZipArchive关于不同目录文件压缩
排行榜

网公网安备