6。接口和虚拟类
其实最早接触虚拟类或者接口。我一直觉得相当的麻烦。特别是那些UI的监听的接口。不过那些接口,忘的都差不多了。所以举例子也举不出好的。反正当初看到为了监听一个事件。写一个类,继承其接口,只写其中一个方法,然后其他都放空。看起来心里就觉得毛毛的。很不舒服。
但是写多了。特别是最近,自己在写一个淘宝的小应用,需要自己来整理很多业务逻辑。渐渐的,发觉接口的作用,其实不在于编程(以前听说接口的作用在于安全,但是说句实话,我想不通),而在于清晰的逻辑。至少我现在的认识是,接口是需求和实现的分离。
这说的有点抽象,因为如果一个程序从头到尾的都是你来写的时候,是很难把需求和实现分开的。起初我就是这样。打个比方来说,如果过年,某某家里美酒了,让你去买酒。这是需求。但是作为一个实现这个需求的你,你需要考虑很多东西。比如说去哪里买,带多少钱……如此总总,简单的事情是很难分清的。如果复杂一点,比方说要你准备一桌年夜饭。这是一个总需求,然后细分到每道菜,每道菜都是一个小需求。而做每道菜,这也许是一个个实现。但是搅在一起时,如果不去刻意的划清界限,真的很难分清什么是需求,什么是实现了。
而接口的作用正好是在这里,因为接口只能提供需求的描述,你一般不会在接口当中写实现方法。从内部来看,接口和类,没什么区别。但是从外部来看,有了接口,就可以把你的程序看成是一个黑盒。接口只是提供一张单子,单子上面写上一些这个盒子能给你提供的哪些功能。
5。关于封装的一点想法。
query(uri, projection, selection, selectionArgs, sortOrder) 这是一句android中的sql查询接口。我在使用中,需要把这句封装起来。提供一些我需要的Dao方法给外部调用。
起初,我把这些封的很干净,大抵只是getXX()这种(XX)是我内部自己的类。然后接触底层都是private共用方法。用起来之后觉得很麻烦。怎么说呢,几个Private方法很累赘。同时呢,几个get方法,里面也有很多重复的代码,比如说关闭Cursor,每添加一个简单的get方法,都需要写很多,。觉得很不舒服。后来我就直接提供个listXX(uri, projection, selection, selectionArgs, sortOrder)这个方法,这个方法就做两件事情,抽取Cursor,然后组装成自己的类,然后其他get方法都是调用这个方法。就简单很多。
后来想想,其实共用的api。封装的已经算是简洁了。至少比我这种初级程序员的封装要好的多。何必自做聪明的继续把其封装起来呢?其实我有时候,所能做的,只是提供一些常用的方法而已。
1.后台数据和前台交互的数据,尽量的使用Josn。
今天碰到了一个问题。前台用Jqgrid展示数据。后台生成的是XML格式的数据。结果碰到一个很麻烦的事情,特殊符号“&”。其实这个符号挺常用。但是这在xml中,这是一个特殊的字符。能够转义用<![CDATA[]]>,不知道为什么IE总是不认。但是发觉jqgrid中,不会把其转回来。最后的处理结果很讨巧。把&转成了“and”。
这是一个很狼狈的举措。相对于json来说,xml要有很多限制。但是我一直觉得xml很漂亮,json太简陋,经过这次的经验之后,觉得,凡事还是挑选简单的方式比较好。
2.LinkedList。
只是对Api了解一下。知道了peek和poll有Last,first之分。其实很早就知道有这个区别。但是不知道这个区别具体在哪里。这样Linkedlist可以模拟栈和队列了。
3。在进行大规模的字符串拼接的时候,应该使用StringBuffer或者StringBuilder。效率会高很多。前者是线程安全的。
4。接口心得:其实以前都很不喜欢用接口。但是最近发觉,用接口,能够很好的起到解耦的作用。比方说对象A,有两个属性a,b。如果我另一个类只要用到a,那么写个接口。让其设计a就ok了。好处就是,下一次再如果要有类B。那么也可以用在这里。
分享到:
相关推荐
【VC++数据库编程总结】 在IT领域,尤其是软件开发中,数据库编程是不可或缺的一部分,尤其在使用VC++作为开发工具时。VC++可以与多种数据库系统进行交互,如SQL Server、Oracle等,通过不同的访问技术实现数据的...
这篇名为“编程经验总结”的文章,无疑是这位程序员将自己多年的心得体会提炼成的一份珍贵指南。下面,我们就来详细探讨一下这个主题中的关键知识点。 1. **代码规范**:良好的编程习惯始于代码规范。遵循一定的...
"VC编程经验总结"是一个珍贵的资源,它涵盖了开发者在实际工作中可能遇到的各种问题及其解决方案。这个压缩包包含了一份HTML文档"阅读器下载.htm",可能是一个在线阅读器或者相关工具的下载链接,用于更好地查看和...
【C++网络编程总结报告】 本报告主要针对C++网络编程进行总结,旨在为学习者提供参考和方便。网络编程是计算机科学中的一个重要领域,它涉及到通过网络进行数据传输和通信的应用程序开发。C++是一种强大的编程语言...
Java Socket 编程总结 Java Socket 编程是Java语言中用于网络编程的主要技术之一。它允许开发者创建网络应用程序,通过Socket实现客户机/服务器结构的通信。在Java中,Socket编程主要是基于TCP/IP协议的网络编程。 ...
"Access数据库和VBA编程总结" 本文档为Access数据库和VBA编程的总结,涵盖了关系运算符、逻辑运算符、条件语句、循环语句、比较大小、金字塔和加密等多个方面的知识点。 关系运算符是Access数据库中一种基本的...
程序员编程好习惯总结 程序员在编程过程中需要遵循一些良好的习惯,以提高代码质量、提高工作效率和降低错误率。本文总结了15条程序员编程的好习惯,涵盖了编程设计、代码编写、版本控制、代码优化、代码维护等方面...
1. **TCP与UDP的基本特性**:TCP是一种面向连接的、可靠的协议,它通过序列号、确认应答、重传机制等确保数据的无错传输;而UDP则是无连接的、不可靠的协议,不保证数据的顺序和完整性,但具有较低的延迟和更高的...
自绘菜单的实现,在VC中透明浮动按键的实现,用VC设计托盘图标程序,图像平滑滚动效果的VC实现,利用钩子实现菜单阴影效果,在VC下显示JPEG、GIF格式图像的一种简便方法,制作 MSN、QQ 的消息提示窗口,VC编程中如何...
首先,标题中的"Unix 脚本编程总结与应用实例"表明我们将关注于编写和应用Unix shell脚本。Unix脚本是基于Bourne shell或其变种(如bash、ksh、csh)的文本文件,其中包含可执行的命令和控制结构。这些脚本可以用于...
10. **UI设计:使两个文本框看起来像一个**(《编程知识总结》8—使两个文本框看起来像一个.txt) 这可能是关于UI设计的一个话题,虽然C#本身不直接提供这样的功能,但使用Windows Forms或WPF,开发者可以通过调整...
UC编程技术总结是一种编程技术的总结,这种技术涉及到静态库和共享库的生成、使用、连接等过程,同时也涉及到内存管理、虚拟内存管理技术等方面。 一、静态库和共享库 静态库和共享库是两种不同的库类型。静态库...
个人关于VC编程的一些经验总结,写的不是很好,有一些例子在上面,对初学者或许有点帮助。高手的话应该不值得一看了。
作为一本经验总结的书籍,作者很可能会分享一些高级主题,如位运算、多线程编程、系统调用,甚至可能会涉及一些C语言的陷阱和常见误区,帮助读者避免在编程过程中走弯路。 通过反复阅读和实践《C语言编程精粹》,...
### 对于ISP编程进入不了编程模式的总结 在进行ISP(In-System Programming,即在线编程)操作过程中,经常会遇到无法进入编程模式的情况,尤其是在使用像智峰软件zf-007系列这样的下载器时更为常见。本文将针对ISP...
这个“python少儿编程总结的程序”集合了50个课程案例,是为Python1级考试准备的,这些课程通常会涵盖基础的编程概念,如变量、数据类型、条件语句、循环、函数以及简单的算法。知名公司的内部程序和VIPCODE这样的...
编程基础面试题总结 title:编程基础面试题总结 面向对象编程和面向过程编程是两种不同的编程思想。面向过程编程是一种结构化编程思想,将大的任务分解成小任务,每个小任务由函数实现。程序包含两类基本元素:...
LinkLabel控件在《编程知识总结》47—LinkLabel.txt、《编程知识总结》48—使用LinkLabel控件链接到另一个窗体.txt和《编程知识总结》44—winform中linkLabel的用法(示例).txt中都有提及。LinkLabel是Windows Forms...
【编程年终总结】 作为一名程序员,过去的一年里,我深感在软件研发、团队协作和个人成长方面的诸多收获。以下是对这些方面进行的详细总结: **软件研发** 在asp开发方面,我经历了从基础到深入的过程。之前仅...