版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 4.1设计学生寝室管理数据库
- 食品科学与工程专业实习心得体会
- 终止劳动合同样式
- 某纺织厂原料采购流程制度
- 下篇 模块六 工业机器人性能测量技术
- 2026北京大学深圳研究生院新材料学院实验技术岗位招聘1人备考题库及参考答案详解(达标题)
- 2026湖南永州江永县人民医院、中医医院招聘合同制聘用人员的3人备考题库附参考答案详解(轻巧夺冠)
- 2026陕西省荣复军人第一医院招聘备考题库含答案详解(达标题)
- 2026华侨城集团春季校园招聘备考题库附答案详解(模拟题)
- 2026四川安和精密电子电器股份有限公司招聘设备工程师(车载方向)1人备考题库带答案详解(达标题)
- 2026年电网大面积停电应急演练方案
- 2026 年浙江大学招聘考试题库解析
- 2026上半年北京事业单位统考大兴区招聘137人备考题库(第一批)及参考答案详解【考试直接用】
- 2026年湖南省长沙市高二下学期第一次月考化学模拟试卷02(人教版)(试卷及参考答案)
- 成都交易集团有限公司2026年第一批社会集中公开招聘笔试备考题库及答案解析
- 8.2 立方根教学设计人教版数学七年级下册
- 2026年宁波城市职业技术学院单招综合素质考试题库附参考答案详解(研优卷)
- 2026年山西经贸职业学院单招综合素质考试题库附答案详解(综合题)
- 全髋关节置换患者的出院康复计划
- 2025湖南株洲市市直事业单位公开招聘(选调)工作人员(医疗岗146人)笔试历年典型考题及考点剖析附带答案详解试卷2套
- GB/T 22576.1-2026医学实验室质量和能力的要求第1部分:通用要求
评论
0/150
提交评论