JAVA开发-接口与抽象开发.ppt

JAVA开发-接口与抽象开发.ppt

ID:50186993

大小:249.01 KB

页数:15页

时间:2020-03-06

JAVA开发-接口与抽象开发.ppt_第1页
JAVA开发-接口与抽象开发.ppt_第2页
JAVA开发-接口与抽象开发.ppt_第3页
JAVA开发-接口与抽象开发.ppt_第4页
JAVA开发-接口与抽象开发.ppt_第5页
资源描述:

《JAVA开发-接口与抽象开发.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

2、维护量在后期也会相当的大。接口与抽象这时就体现了它的优势。批量导入设计的一般框架接口与抽象是一个公用模块不可缺少的设计。对常用的批量导入业务进行抽象,可以发现,类似于Pipe处理,即数据读取,数据导入。再进一步的抽象业务,读取一条记录,导入一条记录,可以使子类的开发更加容易,代码更空易复用和维护。批量导入—数据读取IReadDataAReadDataTextReadDataXlsReadDataBaseReadData批量导入—数据导入IWriteDataAWriteDataTextWriteData

3、XlsWriteDataBaseWriteData批量导入—接口适配器这里借用适配器这一说法(适配器是用空方法实现接口的类)来处理不同接口间数据格式的匹配。比如读取TEXT文件的map(newInteger(n)=value)和导入XLS文件map(String=value)之间的转换。当各种数据源读取到的Map和写入所要求的数据结构一致时,就可以毫无顾忌的相互导入了。接口适配器的设计在批量导入的实例中,适配器只需要对不同格式数据源进行匹配,使之出来的结果数据结构相同。适配器只需要用抽象类就行了,可以

4、不使用接口。这样,几乎所有类型的数据导入就可以实现了。下面将直接用简洁的代码实现。文本文件XLS文件数据库SOCKET数据源读取设计PublicinterfaceIReadData{publicMapreadData();}Map为接口的返回对象,map==null读取结束。用Map作为数据结构可以解决数据列的顺序问题。比如XLS文件title=Value,TEXT文件newInteger(n)=value。这样可以通过中间类实现XLS到TEXT格式的转换,从而实现批量导入。数据源读取设计—TEXT文

5、件PublicclassTextReadDataimplementsIReadDatathrowsException{privateInputStreaminputStream;publicTextReadData(Filefile)throwsException{inputStream=newFileInputStream(file);}publicMapreadData(){InputStreamReaderrRead=newInputStreamReader(inputStream);Buffe

6、redReaderbRead=newBufferedReader(rRead);Stringmsg=bRead.readLine();if(msg==null)returnnull;Mapmap=newHashMap();String[]msgArray=msg.split(“,”);for(intI=0;I

7、Data{publicvoidwriteData(Mapmap);}1、Map为需要导入的数据数据源导入设计—TEXT文件PublicclassTextWriteDataimplementsIWriteDatathrowsException{privateoutputStreamoutputStream;publicTextWriteData(Filefile)throwsException{outputStream=newFileOutputStream(file);}publicvoidwrite

8、Data(Mapmap){Objectmsg=null;intlocate=0;StringBuffersb=newStringBuffer();while((msg=map.get(newInteger(locate++)))!=null){if(locate>0)sb.append(“,”);sb.append(msg);}sb.append(“r”);outputStream.write(sb.toString().getBytes());}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。