封装和接口思想

来源:互联网 发布:武汉淘宝天猫培训机构 编辑:程序博客网 时间:2024/05/22 11:40

      大家看书或者看一些标准库里源码实现的时候不知道有没有注意过一个问题,就是有些函数很简单,但是程序员会特意写一个函数完成这个功能,比如像是返回定长顺序表的有效长度,或者是说返回顺序表容量大小这些在定义顺序表结构的时候就已经定义好的变量,也许你自己使用的时候就可以直接用它的变量名,不需要非得用一个函数返回它的值再这样间接的用,大家是不是会觉得这样多次一举?
eg:
#define size 10
typedef struct seqlist
{
     int elem[size];
     int length;
}seqlist;

int getlength(seqlist s)
{
      return length;
}


      1、方便他人使用
        那它为什么要这么“多此一举”呢,其实它体现了一个设计的理念,每个人的生存都离不开社会和他人,我们写代码也是一样的,当我们进入公司的时候,分工合作,一个项目分为好几个模块,每个人完成和维护自己的模块,同时应该为团队里的其他人提供服务与方便,你不应该让你的队友去理解你代码里每个变量每个操作是什么意思,而是应该直接提供一个使用接口,这里的接口就是我们的函数声明,你应该把你的功能都封装成一个一个的函数,别人用你的代码的时候,只需要使用函数就可以了,这样你对数据进行修改的时候,只要接口不变,那使用者的代码或者用户的操作就不需要改变。

2、安全性
       当你只提供一个访问接口的时候,也就是一个函数声明的时候,别人是无法知道你使用了哪些变量,它们又分别对应了什么功能的,这样使用者就只能使用你提供的功能,而不能随便访问你定义的变量,并随机修改它们了,所以我们写代码的时候也应该把功能封装起来,多提供一些接口。
      
原创粉丝点击