`
西蜀石兰
  • 浏览: 116605 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

尽信书不如无书(接口篇)

 
阅读更多
对于半路出家的自己来说,一直觉得自己比那些计算机专业的人少了些什么,哪怕认真阅读过计算机的操作系统、数据结构等专业书籍,依旧觉得自己在编程语言理解上面,少了别人的天赋,今天想说的话题就是接口。

看《编程思想》时,关于接口的解释是这样的,因为Java不允许多继承,为了弥补这个缺憾,所以Java有了接口以及可以允许实现多个接口的说法,根据这个说法,接口这个概念来的也就理所当然。
某天爱钻牛角尖突然记起来,C++好像是允许多继承的,不过C++依然有接口,那么曾经能糊弄自己的这个理由貌似糊弄不过去了,既然有了继承,为什么要接口?


回头看看接口和父类的区别吧,最大的区别是父类实现了一组方法,而接口需要实现的类自己去实现,看起来比较绕。。

我想正是因为这个区别,才有了接口的存在吧。

抛开编程语言,什么是接口?能提供一组公共功能
这也正是语言设计者当初的初衷吧。

譬如建筑一所超市,那么公共的功能,譬如照明、取暖、供电、供暖,这些功能都是必须实现的,这个时候就能体现继承和接口的区别。
你是愿意在一个杂货店之上改造还是直接新建一所超市呢?
显然后者更加方便。

难保将来不会新增必备的功能,所以,即便目前你用一个父类囊括目前所有的功能,一旦出现了新的功能,你的父类子类会需要重新构造;而使用接口,问题会小很多,我需要做的仅仅是在原来的屋子里增加东西而已。

编程语言,本质上还是工科思维,依然是各种参数,功能。
只有那些经历过高校熏陶的人,才能将这种思维转为潜意识的东西,理解起来才不会那么吃力。才能从设计角度去思考问题,而不是纠结于文字本身。

其实一直在思考,科班出生和培训班出来的到底有哪些区别,作为科班出生的自己,立场肯定会有偏向,我尽量多挖掘一些东西,以便自己静下心的时候去看看。

如果仅仅从文字角度去抠字眼,终究没法跳出文字去理解一些东西。而这些东西,需要的不仅仅是知识,更多的是经验转化而成的阅历。老练二字,值得琢磨。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics