代码优化——默认实现
2016-10-18 16:23
141 查看
Java是一门面向对象的编程语言,面向对象一个重要特征就是多态,提倡面向接口或抽象类编程。
设计接口或抽象类的目的主要是为了方便扩展,对于一些经常使用到的实现,我们就可以提供一个默认实现。
比如我们设计一个网络请求框架的时候,希望可以把请求到的数据流交由用户去处理,到底是转换为String,还是byte,还是其他JavaBean...等等。
但是大部分情况,用户都是希望返回字符串,所以我们就可以这样设计。
设计一个数据解析接口,用来解析网络请求数据
设计接口或抽象类的目的主要是为了方便扩展,对于一些经常使用到的实现,我们就可以提供一个默认实现。
比如我们设计一个网络请求框架的时候,希望可以把请求到的数据流交由用户去处理,到底是转换为String,还是byte,还是其他JavaBean...等等。
但是大部分情况,用户都是希望返回字符串,所以我们就可以这样设计。
设计一个数据解析接口,用来解析网络请求数据
public interface DataParser<T> { /** * 解析数据 * @param data 网络请求返回的数据流 * @return * @throws Exception */ T parse(InputStream data) throws Exception; // 默认的String解析器 DataParser<String> STRING_PARSER = new DataParser<String>() { @Override public String parse(InputStream data) throws Exception { if (null == data) return null; BufferedReader br = null; StringBuffer sb = new StringBuffer(); try { br = new BufferedReader(new InputStreamReader(data)); String line = null; while (((line = br.readLine()) != null)) { sb.append(line); } } finally { if (null != br) br.close(); } return sb.toString(); } }; }
相关文章推荐
- [原创]桓泽学音频编解码(5):MP3 和 AAC 中IMDCT算法的原理,优化设计与参考代码中实现
- Coolite优化导出Excel文件实现代码
- IE下textarea默认不显示滚动条的实现代码
- 用python做自动化测试--实现高性能测试工具(2)--优化代码
- 用选择的方式对数组进行排序,并写出对应的优化后的代码实现。(重点写思路、原理)
- 《论不使用ObjectDataSource之数据绑定控件纯代码实现是否更优化? 》补记
- 编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射]
- 代码优化之基于双向链表插入的实现
- form表单中去掉默认的enter键提交并绑定js方法实现代码
- 2048游戏C++ Console实现(简单版,未优化代码)
- Coolite优化导出Excel文件实现代码
- [原创]桓泽学音频编解码(4):MP3 和 AAC 中反量化原理,优化设计与参考代码中实现
- TabHost 默认布局,以及将TAB移到屏幕底部, 代码实现
- 修改file按钮的默认样式实现代码
- 使用css sprites来优化你的网站在Retina屏幕下显示实现原理与代码
- Coolite优化导出Excel文件实现代码
- iPhone 默认时钟的字体以及实现代码
- [原创]桓泽学音频编解码(7):MP3 和 AAC 中huffman解码原理,优化设计与参考代码中实现
- 精确覆盖问题学习笔记(五)——优化算法的实现代码
- 编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射]