现在的位置: 首页 > 综合 > 正文

初学者关于接口编程的认识

2013年10月10日 ⁄ 综合 ⁄ 共 7705字 ⁄ 字号 评论关闭

首先,先声明一下,我是一名学生,代码行屈指可数,所谈之处只是个人的见解,错的地方希望大家多多指点,先谢谢大家~

 

大三一次很幸运的机会,参加了一次外面培训,当时的老师提到了一个概念就是:面向接口编程。但是当时老师因为时间的问题,没有展开给我们讲解,只是让我们看了一下他的应用,后来自己多次模仿。其实,操作很简单,当你想建立一个类的时候,就把类中公有的方法抽象到接口中,然后定义一个名字。

有一天,我发现这个过程很麻烦,因为每次我要修改参数的时候,都要先修改接口,然后再修改类,而我这个接口貌似只是针对这一个类的,如果没有它,我的这个程序是依然可以完成的,然后,我毅然决然的就不再使用接口了。后来,才知道是自己没有真正理解“面向接口编程”的真正意义。

 

大三的下学期,依然是去参加培训,这次时间比较短暂,所接触的知识就是由java到web的学习——jsp的简单应用。关于知识没有学到多少,但是老师在整个过程中,一直给我们强调了一个关于编程过程的问题,后来老师提到了一本叫“重构”的书。对于编码,首先应该是想办法把问题解决,然后把看得不舒服的位置,仔细思考,然后进行修改,更换些简便舒服的代码段。

实习结束之后,自己厚着脸皮买了这本叫“重构——改善既有代码的设计”,为什么说厚着脸,因为总觉得只有代码行达到一定量之后,才能完成代码的优化美观。后来自己读了,书上介绍的过程也大致就是老师讲解的意思,因为自己的能力有限还没有真正理解书中的高深技术,但是在自己编程中,有的时候自己也略微整理一下自己的代码,慢慢的,我发现自己喜欢上abstract class这个东西了,每次结构相似的抽象一下整理出一个父类,然后把其中的代码分功能模块的整理。

 

随着编码越来越多,自己开始频繁的使用数据库,大家也都知道,在数据库连接中,更新操作,代码的样子都差不多,每次不同的只是从数据库中查找对象,于是自己写了一个这样的抽象类,以供不同的实体类继承。

这样,当我对不同的实体类就可以是指实现getInfoFromResultSet方法了。

 

随着时光的推进,在大四,我接触到了流行的SSH框架,大三下学期的时候,同学就鼓励我看看框架,可是自己总觉得自己基础知识还没到位,于是自己学习了关于设计模式,编程规范,重构等方面的东西,自己觉得自己还是有些收获,但是跟自己代码行还是有很大的关系。自己也写了几个关于Spring的程序,这个时候,只是知道Spring大量使用面向接口编程,自己也没太明白。后来,同学给自己介绍的时候,我依然觉得不用接口也可以啊,后来自己还专门写了一个抽象类,以用来减少代码的冗余:

 

最近,自己在一次与具有丰富经验的前辈聊天的时候,谈到了面向接口编程这个概念,也是通过他的讲解,自己发现,自己存在着很大的问题。所谓的面向接口编程,就像盖房子似的,接口是房屋的架子,而架子里放的东西是什么,也就是实现这个架子的类,我们像摆积木一样的,把自己需要的实现类放到指定的位置,这也就是Spring配置文件的意思,当有一天,我们需要升级系统的时候,有些实现类过时了,不再需要的时候,我们只需要把新的实现类替换旧的实现类,这样,每次修改,都只需要做小幅度的调整。而面向接口编程的一个重要目的不是为了首次开发带来方便的,而是为以后维护带来方便的。 

 

仔细思考,发现自己在编程的思想上还很幼稚,对于抽象类,我完全可以把他抽象一个接口,当作一个工具对象,聚合到另外的类中,这样我也可以维护这个工具类了。

突然想到了thingking in java第一章的标题:一切都是对象。

 

加油,努力!

抱歉!评论已关闭.