专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能WEB开发

100+个方法由100+个参数来对应调用,怎么做才最合理

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
100+个方法由100+个参数来对应调用,如何做才最合理
业务大概如下,前端目前有30多个sockect服务发过来(考虑以后还会增加),每个服务假设都是唯一的,通过一个id来对应.而且对于不同的服务,业务请求也是不一样,我们需要应答的结果也是不一样的.目前思路有如下2点.
1.在数据库配置(配置文件也行).通过唯一的id,对应得到具体的实现类.然后动态加载类进行处理.
2.通过Spring bean配置.没增加一个新的sockect通讯,即在spring中增加一个bean,然后将bean的id设为xxxx+id的形式,通过手动的到bean来加载实现类.
PS:实际中可能出现一次100个以上的请求发过来.是否需要考虑并发情况.
有没有大神给点思路.或者给个建议那一个比较好
------解决方案--------------------
这个,感觉没有必要吧,100个socket,不算多吧,一版设计就可以了
------解决方案--------------------
引用:
我现在的问题并不是处于这里..因为每个请求对应的操作都是不一样的.在逻辑中我该怎么处理,if else?就目前来说有50个不同的请求,难道我就要50个if else? 如果是100个呢?我现在的问题是,该怎么才可以避免这个问题的出现,比如我通过数据库配置,就可以通过请求报文中的id来找到对应的实现这个请求的方法从而进行操作.


这问题,我认为你有点把它想的复杂化了。设计模式中的Facade模式,就是应对这种问题的。

那么具体到操作层面,假如你不打算借助任何开发框架和组件的话,你可以这么做:
1、不同类型的请求,编制相应的请求类型ID,在请求信息中包含该请求类型ID;(相信你已经做到了)
2、编写50个服务类,最好是支持单例模式的,并继承自相同的服务处理接口;(相信你基本上也做到了)
3、建立HashMap,主键是:请求类型ID;取值类型就是:服务处理接口;
4、初始化50个服务器,全部放入HashMap中;
5、调用时你就: ResultVo  result = map.get(服务ID).call(请求报文);

以上,有问题欢迎继续探讨。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: