JAVA开发接口与抽象开发_第1页
JAVA开发接口与抽象开发_第2页
JAVA开发接口与抽象开发_第3页
JAVA开发接口与抽象开发_第4页
JAVA开发接口与抽象开发_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、接口与抽象的应用实例1常用的批量导入的开发打开文件读取所有数据导入所有数据打开文件读取一条记录导入一条数据关闭文件关闭文件导完未导完2为批量引入接口与抽象 通过常用的批量导入方式,可以很好的完成数据的导入,为什么还要引入接口与抽象呢?以下情况是经常发生的: 1、数据源的类型和格式改变时 2、目标源的类型和格式改变时 当然很多人会用COPY+PASTE,然后在恰当的地方进行恰当的修改,来实现恰当的功能。但这样做的工作量是相当大的。比如数据源不是XLS,而是来自另一个数据库,或是SOCKET流。而且可复用性基本为零,维护量在后期也会相当的大。接口与抽象这时就体现了它的优势。3批量导入设计的一般框架

2、 接口与抽象是一个公用模块不可缺少的设计。对常用的批量导入业务进行抽象,可以发现,类似于Pipe处理,即数据读取,数据导入。再进一步的抽象业务,读取一条记录,导入一条记录,可以使子类的开发更加容易,代码更空易复用和维护。4批量导入数据读取IReadDataAReadDataTextReadDataXlsReadDataBaseReadData5批量导入数据导入IWriteDataAWriteDataTextWriteDataXlsWriteDataBaseWriteData6批量导入接口适配器 这里借用适配器这一说法(适配器是用空方法实现接口的类)来处理不同接口间数据格式的匹配。比如读取TEX

3、T文件的map (new Integer(n)=value)和导入XLS文件map (String=value)之间的转换。当各种数据源读取到的Map和写入所要求的数据结构一致时,就可以毫无顾忌的相互导入了。7接口适配器的设计 在批量导入的实例中,适配器只需要对不同格式数据源进行匹配,使之出来的结果数据结构相同。适配器只需要用抽象类就行了,可以不使用接口。这样,几乎所有类型的数据导入就可以实现了。下面将直接用简洁的代码实现。文本文件XLS文件数据库SOCKET8数据源读取设计Public interface IReadData public Map readData(); Map为接口的返回对

4、象,map=null读取结束。 用Map作为数据结构可以解决数据列的顺序问题。比如XLS文件title=Value,TEXT文件new Integer(n)=value。这样可以通过中间类实现XLS到TEXT格式的转换,从而实现批量导入。9数据源读取设计TEXT文件Public class TextReadData implements IReadData throws Exception private InputStream inputStream; public TextReadData() throws Exception inputStream=new (file); public

5、Map readData() InputStreamReader rRead=new InputStreamReader(inputStream); BufferedReader bRead=new BufferedReader(rRead); String msg=bRead.readLine(); if(msg=null)return null; Map map=new HashMap(); String msgArray=msg.split(“,”); for(int I=0;I0)sb.append(“,”); sb.append(msg); sb.append(“rn”); outp

6、utStream.write(sb.toString().getBytes(); 12适配器设计默认类Public class DefaultAdapter implements IDataAdatper public Map changeDataFormat(Map map) return map; 这个类没有只是直接返回,可以用于文件复制或是读取后结构相同的数据源之间导入。13批量导入最后设计Public class DataImport public void importData(IReadData iReadData ,IWriteData iWriteData ,IDataAdapter) throws new Exception Map map=null; while(map=iReadData.readData()!=null) map=IDataAdapter(map); iWriteData.writeData(map); 14结束语以上所有代码的开发源于项目中WLAN数据的批量导入与数据导出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论