论坛首页 综合技术论坛

业务与功能实现接口化分离开发

浏览 1782 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-11-09  

我以前开发的时候不太注重接口开发,需要接口的时候才开发接口,有时直接在功能里调用具体实现,加上以前对接口好处体会没有那么深,用的时候很随意,到在改别人代码才深有感触。
打个比方,原先的代码里有个FtpUtil工具类,是ftp上传下载功能的具体实现,但是现在上传方式要改成sftp方式上传,这时候问题就出现了,有个被多个业务类继承的父类,以前直接调用ftp实现类,但是现在要改成直接sftp的话,那以前的ftp方式就废弃了,万一哪天再用或被别的要ftp方式上传的地方继承,还需要重新做,这时候,最好的方式就是将这个父类中定义的变量类型由原来的实现类改为IFtpUtil接口,不管ftp还是sftp类都需要实现这个接口,并且接口里定义了一些上传下载等公用方法。这里怎么判断用ftp还是sftp呢,我们这个父类里有个setFtpInfo()方法,原先是从xml里取ftp节点,然后取里面的信息传到FtpUtil工具类的构造方法,但是现在我取ftp节点和sftp节点,如不为空,将参数分别传入到相应工具类的构造方法。这样两种上传方式就不影响了。
写这个日志为了提醒自己,开发的时候要多重考虑和为以后升级提供方便,尽量在业务里使用接口调用。


ftp  commons-net
sftp jsch
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics