本文是小编为为什么要对接口进行封装撰写,主要解答关于为什么要对接口进行封装的相关疑惑,以下是正文。
测试开发中,编写接口自动化代码时,为什么要引入封装的技术?封装是面向对象编程的一大原则,就是把程序的一些细节隐藏起来。封装好的函数接口可以直接拿来调用,不用进行重复性开发。而且后期维护的时候也可以进行单独接口的维护。来说就是为了更好的复用和维护。
因为trunk链路封装协议有2种一个是802.1Q这个是公共协议,就是说所有设备都用的协议,还有一种就是CIsco私有的ISL协议。。因为在路由器上配单臂路由也是走VLAN信息,VLAN只能走Trunk链路。。而子接口是虚拟的,所有有必要对子接口进行封装协议,这样双方才能了解自己用的都是那种协议
所谓封装,就是将属性和方法捆绑到一起,封装到一个对象中去,简单的说,你是人,你有许多属性,比如说你的姓名,年龄,身高,体重,性别,性格,爱好等等,这是属性;而同时,你又会吃饭,睡觉,工作,学习,做事情,这些是方法,是你所具有的;同时将属性和方法封装到一个类中去,就能很完美的描述这个类的特征了,同时,它所具有的方法也就一起集成到类中,方便使用。这些是简单的描述了。至于什么时候需要这个似乎不是讨论的重点了,既然是java号称完全面向对象的语言,那么,你就应该一直以封装方式去思考问题和设计类了。下面摘篇文章,你可以看看~========================================隐藏复杂性,是我们人类处理更复杂问题的一种常用方法。这可能跟人的记忆力、计算力等是有限的这点有关,对这种方法背后原因的深度挖掘,要涉及人类认知学方面的知识,而显然它(认知学)的表现并不尽如人意,否则完全可以根据它造出会认知的机器来。这里不讨论认知学与强人工智能,感兴趣的读者可以找些这方面的资料来读。我们只要知道,这种隐藏复杂性的方法很常用、很好用就可以了,比如操作电视,我们不需要知道电视内部的繁杂的布线,只通过几个电视按钮就可以实现调整音量、切换频道等等功能;软件中,面向对象中的封装,就是对这一基本方法的体现。对象的封装,要分两个方面来考察,一个是怎么样封装才算对,一个是怎么样封装才算好。达到了封装者对对象的职责预期就是对的,否则,就是错的。比如,想得到的是一个狗对象,能狗叫,而封装的结果竟然是个猫,会猫叫。又比如,想得到的是一个狗对象,能狗叫,而封装的结果是一个狗对象,却能猫叫。这都是没有达到封装预期所致。但也有这种情况,有人先封装了一个对象后,接着说,这个对象就是我的预期,这样做就像打哪儿指哪儿的神枪手一样,预期永远与封装的对象相符合,那么我们只能考察它的另一项指标:好不好。而评价封装的好不好,很难有一个客观的标准,不管从哪个角度说,,它都更属于设计美学范畴。当一种封装显得不怎么美的时候,就是不太好。怎么又算美呢?这真的很难说;一千个人可能会有一千种关于美的评价吧。我只能说一下我自己的审美倾向,简洁既是美。简洁的追求会自然促使你让类的职责单一,比如一个狗对象,不但会狗叫,也能猫叫,那么猫叫就是很不和谐的音符,这就显得不美。狗对象只表现狗的行为则显得更为合适,表现的太多,反而会感觉很怪异。假如来了只猫对象,见到这只会猫叫的狗,一定感觉很不是滋味。程序是给程序员看的,职责明确而接口简单的对象,看起来会更舒服,可读性也一定会更好。职责模糊而接口复杂的对象,看起来总不那么舒服(虽然也能实现所有业务功能)。我们还是看一段具体的程序吧。这是一个计数器程序。 这个类只有一个属性,对应到这个对象,则这个类属性代表着对象的状态,所有的方法,都是围绕着对象的基本属性或状态进行的操作,没有和基本属性无关的操作。这个对象的职责就是负责计数。很简洁。假如我们再添加一个方法,如下:public int max(int a,int b){ if(a>b) return a; else return b;}那么这个方法对于这个计数器对象来说,就是相当于狗对象中有了猫叫,就是不和谐的,就是不美的。这个方法和计数器的职责是无关的,它也没有涉及到类属性的任何操作,如果一个操作对它自身没有任何影响,这好像更应该是别的对象的方法。所以,把取得最大值这种方法放在这里是很累赘的。 既然是在进行封装和信息隐藏,就要区别于开放和信息暴露,那么在能完成特定职责的情况下,封的越严实越好,信息隐藏的越多越好,留的接口越少越好,这样的对象的功能才强大而接口又简洁。这种简洁的美感怎么表述呢,我总认为苹果公司的各种产品的界面设计最能体现出这种简洁美感。IPod的界面和操作设计,就有一种艺术般的简洁美感。而面向对象设计中的封装,也应该向iPod的封装效果学习。 比如两个同类型对象,如果它们的id属性相等,则认为这两个对象相等。有两种办法判断相等,一种是分别通过两个对象提供的接口取出对象id,再在对象外的程序中做id的比较逻辑判断(例如:if a.id=b.id then…);一种是对象本身提供是否相等的方法,在对象内部完成此判断,外人看不到(例如:if a.equal(b) then…)。这样,把实现细节隐藏在内部,显然这样的封装的更加合理,使用起来也更加的方便。这就像操作轿车,如果轿车的接口是这样:按一个按钮,弹出一根线,再按下另一个按钮,弹出另一根线,然后司机用手把两根线一碰,汽车发动了!虽然也能发动汽车,但未免太麻烦了;这种发动汽车的方式就像比较两个对象是否相等的例子中的前者,这样做肯定也是能发动着汽车的,就像很多封装的不好的对象一样能实现要求的功能一样(比如比较对象是否相等的第一个例子)。一拧钥匙,汽车就发动,明显优于手工碰线头的方式。 一想起封装与信息隐藏,我总是会不由自主的想起《自私的基因》一书的作者道金斯说的关于基因的一段话: 但在今日,别以为它们(基因)还会浮游于海洋之中了。很久以前,它们已经放弃了这种自由自在的生活方式了。在今天,它们群集相处,安稳地寄居在庞大的步履蹒跚的“机器”人体内,与外界隔开来,通过迂回曲折的间接途径与外部世界联系,并通过遥控操纵外部世界。它们存在于你和我的躯体内;它们创造了我们,创造了我们的肉体和心灵;而保存它们正是我们存在的终极理由。这些复制基因源远流长。今天,我们称它们为基因,而我们就是它们的生存机器。 他的这段话如此精彩,令我忍不住套用如下: 基本的变量已经不再浮游于一大段一大段的程序中了,它们已经放弃了(其实是程序员不用这种方式了)这种自由自在的存在方式,而是安稳的寄居于庞大而蹒跚的“对象”内部,与外界隔开来,通过迂回曲折的间接途径与外部世界联系和通信。而这些对象,就是它们这些基本变量的生存机器! DB37是标准库,没有必要自己画,软件封装库里有现成的,直接使用即可。(下图是DB37的不同的四种形式 ) 封装的作用主要有2点:1、是用来保护元器件内部电路,不直接裸露在空气当中,这样容易产生氧化,以外短路等情况。2、是方便连接,封装通常都是标准化的。对元器件进行封装,可以使该元件方便的连接到各种具有该封装接口的的接口插座上。举个例子来说,如计算机主板上的PCI插槽,可以用来插声卡,网卡等各种标准化的板卡。所谓的PCI插槽就是一种标准化的接口模式。 肯定了封装是面向对象编程的一大原则,就是把程序的一些细节隐藏起来。封装好的函数接口可以直接拿来调用,不用进行重复性开发。而且后期维护的时候也可以进行单独接口的维护。来说就是为了更好的复用和维护。
因为trunk链路封装协议有2种一个是802.1Q这个是公共协议,就是说所有设备都用的协议,还有一种就是CIsco私有的ISL协议。。因为在路由器上配单臂路由也是走VLAN信息,VLAN只能走Trunk链路。。而子接口是虚拟的,所有有必要对子接口进行封装协议,这样双方才能了解自己用的都是那种协议
相信读者朋友经过小编一番耐心的解答已经对为什么要对接口进行封装了然于胸,若还存在疑惑可通过站内搜索找到答案。