包依赖关系处理

  项目使用OSGI框架开发,每个bundle都是可动态增删的模块,bundle之间的依赖关系处理是在OSGI上注册、监听服务实现的,具体可参考OSGI的相关书籍。每个bundle就是独立的、可在软件运行后删除、替换(即热插拔,如eclipse的各种插件,就是OSGI实现的),在bundle内部的包依赖管理需要自己处理。比如这样:
  这里写图片描述

  用户通过UI界面发来的请求,经UI接口、Service后,最后在Hundle处调集资源处理,得到结果,沿原路返回。目前需在不影响原流程的情况下,实现一个新的附加功能:用户参数会附加一个标记,有此标记则保存用户参数,后台定时利用这些参数重复计算,得到新的结果,实现持续监控的功能。
  在具体实现时,因为不只是保留用户参数,还有Hundle内部运算的一些中间变量也需要保存,最后将新功能的model(用户参数、定时频率、到期时间等)抽象后,放在Service包中,而唯一的实现类放在Hundle中。抽象类中仅保存用户参数,具体的实现类扩展了中间变量的存储,但对外也隐藏了其细节。
  现在仔细总结后发现,之所以处理起来感觉麻烦,是因为在包功能划分时还不够细致。完全可以将用户参数单独提出来,作为一个类(比如Data),放在Model中,在Hundle内部定义一个包含Data类的业务类,此业务类中还存储中间变量,在计算完成后返回给上层service时,直接给出Data,效果一样,职责更清晰。
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值