`
zgw06629
  • 浏览: 29974 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

程序设计问题

 
阅读更多

现封装了这么一个与银行通信接口

统一提供给其他系统调用

在该接口里有这么些方法:支付、充值、签约、账单查询等

 

 

目前的设计是通过反射来实现的

即将不同银行的具体通信类的类名、方法名、等写在配置文件

如 ICBC_PAY_CLASS_NAME = ****

ICBC_PAY_METHOD_NAME = ****   

然后在该接口实现类中来动态调用

 

是不是 还有别的更好的实现方式呢

 

并且这样封装 有一点不方便的是

如 支付方法工行只需5个参数 而建行却需要8个参数

那么我这个接口的参数 肯定得以建行为准了

 

或者某一个银行多出一个方法 如获取动态验证码

而别的银行却不需要

则我这个接口也得包含该特例方法

 

 

 

qtl { position: absolute; border: 1px solid #cccccc; -moz-border-radius: 5px; opacity: 0.2; line-height: 100%; z-index: 999; direction: ltr; } qtl:hover,qtl.open { opacity: 1; } qtl,qtlbar { height: 22px; } qtlbar { display: block; width: 100%; background-color: #cccccc; cursor: move; } qtlbar img { border: 0; padding: 3px; height: 16px; width: 16px; cursor: pointer; } qtlbar img:hover { background-color: #aaaaff; } qtl>iframe { border: 0; height: 0; width: 0; } qtl.open { height: auto; } qtl.open>iframe { height: 200px; width: 300px; }

分享到:
评论
1 楼 wxn_yxm 2011-04-06  
1. 可以通过spring的工厂方法实例化要实现的对象,你所做的是定义好相关的接口,然后去实现相关的接口就可以了。
2. 对于多参数的这些方式,a. 采用动态多参数(如数组,变参),b. 使用参数对象, c. 使用Map装参数封装传递。
3. 对于不同银行调用的方法可能会多或少,可用采用组合模式或装饰模式来解决。

相关推荐

Global site tag (gtag.js) - Google Analytics