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

上传人:小飞机 文档编号:5436079 上传时间:2023-07-06 格式:PPT 页数:15 大小:219.99KB
返回 下载 相关 举报
JAVA开发-接口与抽象开发.ppt_第1页
第1页 / 共15页
JAVA开发-接口与抽象开发.ppt_第2页
第2页 / 共15页
JAVA开发-接口与抽象开发.ppt_第3页
第3页 / 共15页
JAVA开发-接口与抽象开发.ppt_第4页
第4页 / 共15页
JAVA开发-接口与抽象开发.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《JAVA开发-接口与抽象开发.ppt》由会员分享,可在线阅读,更多相关《JAVA开发-接口与抽象开发.ppt(15页珍藏版)》请在三一办公上搜索。

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

2、导入设计的一般框架,接口与抽象是一个公用模块不可缺少的设计。对常用的批量导入业务进行抽象,可以发现,类似于Pipe处理,即数据读取,数据导入。再进一步的抽象业务,读取一条记录,导入一条记录,可以使子类的开发更加容易,代码更空易复用和维护。,批量导入数据读取,IReadData,AReadData,TextReadData,XlsReadData,BaseReadData,批量导入数据导入,IWriteData,AWriteData,TextWriteData,XlsWriteData,BaseWriteData,批量导入接口适配器,这里借用适配器这一说法(适配器是用空方法实现接口的类)来处理不

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

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

5、putStream=new FileInputStream(file);public 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;ImsgArray.length;I+)

6、map.put(new Integer(I),msgArrayI);return map;,数据源导入设计,Public interface IWriteData public void writeData(Map map);,1、Map为需要导入的数据,数据源导入设计TEXT文件,Public class TextWriteData implements IWriteData throws Exception private outputStream outputStream;public TextWriteData(File file)throws Exception outputStre

7、am=new FileOutputStream(file);public void writeData(Map map)Object msg=null;int locate=0;StringBuffer sb=new StringBuffer();while(msg=map.get(new Integer(locate+)!=null)if(locate0)sb.append(“,”);sb.append(msg);sb.append(“rn”);outputStream.write(sb.toString().getBytes();,适配器设计默认类,Public class Default

8、Adapter implements IDataAdatper public Map changeDataFormat(Map map)return map;,这个类没有只是直接返回,可以用于文件复制或是读取后结构相同的数据源之间导入。,批量导入最后设计,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);,结束语,以上所有代码的开发源于项目中WLAN数据的批量导入与数据导出的简化,实际的批量导入中,需要进行各种业分析,如果将各种业务引入接口与抽象,这样数据的导入将更加易维护。另外,批量导入中也要对异常进行处理,所以还需要对异常的处理引入接口与抽象。希望能抛砖引玉。,谢谢大家,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号