.NET简谈接口

发表于:2011-7-28 09:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  自从面向对象开发方式的出现,抽象的概念就开始日新月异的发展,面向对象编程、面向接口编程、面向组件编程等等;这一系列的概念都是软件工程所追求的思想范畴,高类聚低耦合。

  今天我要简谈的是面向对象里面非常重要的也是非常抽象的概念,接口。谈起接口多少人曾经为之痛苦过,尤其是一些刚入门的开发人员(包括小弟),百思不得其解,啥叫接口,接口能干嘛用,用不用有什么区别;等等问题困扰着,这些问题不解决不弄明白,很难在面向对象领域混,更别谈面向对象开发了,可能有人认为面向对象开发就是麻烦我不用一样也能开发,开发一个项目又是分这个层,又是分那个层的,繁琐。这中情况我就没有权利去发表任何意见了。仁者见仁智者见智吧;

  接口是面向对象里面非常重要的概念,我们暂且不谈面向对象里面的接口;其实接口在我们日常生活中到处可见,比如自来水的水管、燃气阀门、电视机的插头等等;在面向对象里面的接口概念其实跟这些都是大同小异的。为什么要提倡进行面向对象软件开发呢,我想就是将我们开发的方式完全能模仿自然界的生存规律,在没有彻底理解面向对象里面的接口时,请注意千万不要自己欺骗自己,简单的自已打个比方就OK了(别人这么说,我也这么想一下),这些问题一定要搞清楚,本人有过成功理解面向接口的经验,希望通过本文章能帮助您小理解一下;后面的升华(面向对象设计、面向接口设计等等),还得靠自己去摸索。我们再来看一下,在我们计算机里面存在哪些接口,比如我们的硬件与OS的接口,硬件存在的数量数不胜数,各种各样,要想完全能与OS对接,能让我们的软件使用,必须遵循一定的接口,在我们的OS与硬件之间存在着一层,硬件抽象层;

  请看图:

  什么叫硬件抽象层:硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化;目的就是使用这一层来抽象化所有的硬件接口,对上层使用统一的接口调用;根本不需要关注有哪些硬件,只要大家都遵循一致的接口就能互相通讯,互相调用;有一位大师曾经说过:在计算机科学领域里任何一个问题都能通过添加一个间接层来解决;这里的接口是一个比较大的开发思想,但是它与代码中的接口概念是完全一样的,都是提高抽象性,提高独立性;

  我们回到开发代码中来,我就拿。NET来示范了(本人只会C#),在某一个编程语言里面的接口其实就和上面的硬件接口层是一个意思,我们拿一个例子来说吧,我就奉献我认为最能说明接口问题的例子,这个例子一直伴随着本人理解到现在,每当我有问题时,我就利用这个例子来打比方,其实很简单的一个例子,就是完全模仿现实生活中的场景,也是面向对象所最求的精髓;都说演员要感受生活才能演好戏,我们程序员也要感受生活才能写出好的程序;(开个玩笑)

  例子:假如我是一家生产水管公司的老板,我要生产所有能被家庭、工厂、企业使用的水管;要想生产这些水管,就必须要知道这些水管能与家庭、工厂、企业进行对接的条件,家庭、工厂、企业都使用些什么规格、型号的水管;这些东西那里来,找啊;注意这里就形成了第一个接口,各厂家的水管规格、型号说明书,这个说明书就是我们这里的接口;知道了各个生产厂商的水管的规格、型号说明书,我就知道怎么与之对接了;

  请看图:

  各个厂商都公布了自己公司生产的商品的一系列说明性信息,只要我们找到了这些信息就可以生产了;我们把图转换成C#代码,请看图:

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号