接口起到的作用

来源:互联网 发布:电脑进销存软件 编辑:程序博客网 时间:2024/04/30 05:11

接口起到的作用

对于调用者来说,接口或是类告诉了这个对象它所调用的对象的有什么样的的特性,可以做什么。

对于被调用者来说,接口或是类约束了被调用者的功能,如果这个对象希望被作为某些功能调用,它就必须实现一些接口。

而“类”比“接口”约束的更详细,也更复杂。“类”可以符合多个接口的规则。

封装过滤了不需要关注的信息,保留了用户希望关注的信息。例如一件东西,你用放大镜看到的和用显微镜看到的就完全不一样,你也可以看到分子结构。但是使用放大镜的时候却是无法看到的。

没有了封装,表面结构,光线,颜色分子结构,物理结构,化学结构都暴露在你面前了,你关注什么呢?如此多的特性又如何知道你需要关注的特性是否存在,是否可用呢?

或许你说我一看就知道该怎么用,那是因为你大脑中已经有了一个预期的接口,同时你很了解被调用对象的结构,知道这个对象符合你理想的接口规则。这样你才可以放心的调用。否则我给你一个int func(Type a)你知道这个函数可以干什么么?不知道!

但是程序不是一个人的事情,别人或许不需要知道你写了什么样的代码,只要知道这个代码的功能就可以了。封装的作用就是避免所有的人都去了解内部详细的构造。就象你买了一瓶去油剂,没有人会给你写详细的化学分子式或是详细的介绍分子运动模式,只是告诉你,这个东西喷在油上可以溶解油污。当然你随便拿一瓶去油剂都可以这样去用(因为符合了去油剂接口),不用每一瓶都去分析它的化学分子式。

是不是这样就一定要有一些东西隐藏起来呢?我认为没有必要,随着调用者的需求不同,甚至完全开放也是没有问题的,就象我们需要观察分子运动的时候也用办法看到分子运动一样,只是我们使用了另一个接口“分子构成对象”接口。

所以,封装不是必须的,而是根据需要进行的。如果你不希望别人使用的你的对象,你甚至可以隐藏所有的属性。但是显然,软件开发不是一个人的事情,你需要和别人合作,而封装就形成了一种公共的语言,不仅其他程序员可以理解,软件也可以理解。所以封装显然是有必要的,区别在于在不同的场合使用不同程度的封装。

资源也是一种对象,实际上资源应该是一种已经封装过的常用对象。我们调用资源的时候实际上也是依赖于一些我们期待的封装,只是这些封装没有用程序的方式表现出来。但是我们不得不承认,有一天我们的资源会改变,就象石油总有一天会用完。与其相信资源不会改变,为什么我们不使用封装的形式制定一些接口,要求资源必须符合这些接口? 

原创粉丝点击