接口编程
❶ 什么是面向接口编程,它的好处是什么
在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就 不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系 统设计的主要工作内容。面向接口编程就是指按照这种思想来编程
补充:我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理想的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点麻烦。
❷ 面向切面编程和面向接口编程的区别
谈谈自己的理解吧:
面向切面编程:
手段:分离业务的主逻辑和次逻辑的一种思想。
目的:解决的是逻辑分离问题(主逻辑和次逻辑分开,其实主要是分离业务逻辑和非业务逻辑分开)。
案例:我们开发项目的时候基本都要去连接数据库操作数据等,但是都会涉及到事务的提交,这时我们就用到了面向切面编程,我们在业务层只写自己的业务逻辑,提交事务这一块统一的动作我们就浓缩到了一块儿统一处理,形象一点比喻就是我们做什么事之前都以一个准备动作或结束动作的时候就把它统一起来,只关注我们要完成的事,这些准备动作统一完成!
类似的面向切面编程案例还有:系统日志的记录、请求的拦截等
面向接口编程:
手段:通过接口规约对象的属性和方法,是面向对象一部分。
目的:统一标准问题,让大家不至于各行其事而对代码的可读性造成影响(公用部分行为)。
案例:其实这个比较好解释,就是有一件事,需要大家去完成,但是给你规定了完成的方式,你只能怎么去做,这时我们当中任何一个人都能去完成这件事,只不过因人而异会有效率和风格的差异,但是都是按照事先的规定来的!比如:让你去给数据库添加一行数据返回受影响的行数,这里大家都去实现接口写sql,中间可能会有差异,但是最后都得返回一个int类型的受影响行数回来
大体意思就是说:接口给我们规定了完成一个任务的标准,但是具体过程不限制,任何人都能通过遵循的规定去完成这件事!这样扩展性就很强!
个人水平有限,如果不满意请参考:网页链接
❸ 什么叫作编程接口
简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。
计算机虽然功能十分强大。可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。
程序也就是指令的集合,它告诉计算机如何执行特殊的任务。
写出程序后,再由特殊的软件将你的程序解释或翻译成计算机能够识别的“计算机语言”,然后计算机就可以“听得懂”你的话了,并会按照你的吩咐去做事了。因此,编程实际上也就是“人给计算机出规则”这么一个过程。
随计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。由于省略了很多细节,所以编程者也不需要具备太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
从二十世纪60年代以后,计算机得到了突飞猛进的发展。似乎历史上没有任何一门科学的发展速度超过了计算机的发展,无论硬件、软件、还是网络都以惊人的速度向前发展。软件的发展速度和硬件一样,二十世纪九十年代中国的软件业还不是很成熟,而现在大大小小 的软件企业四处耸立,共享软件网上随处可见。不断发展的技术需要不断变化的程序员,例如,如今Visual Basic可以快速构建Windows下的应用程序,程序设计方面的技术不断发展着,不断引进新的概念、新的方法,如从结构化的C开始,当面向对象的思想被提出后,出现了C++,微软在C++的基础上为使用户构建win32应用程序更加方便,推出了Visual C++。这也就需要程序员也要不断的更新自己的技术。
目前常用的基本程序语言的种类比较繁多,比较简单的有:Pascal、c语言、qBasic、 Fortran、Visual Basic等等。但前几种都是在DOS下进行编程的工具,Visual Basic是在 Windows下进行应用程序设计的编程工具,现在一般的计算机用户几乎都不再使用DOS了,因此我们通常会选择Visual Basic作为初学者的编程工具。Visual Basic是Windows应用程序设计中最容易上手的编程工具,学习步骤也比较容易被初学者接受。对于刚开始学习编程的初学者来说,还是选择Visual Basic,学习编程语言不能想象着一步登天,一步一个脚印的学习才是最佳方法。
❹ 面向接口编程到底有什么好处
1.最简单的方法:
publicstaticStringreverse1(Stringstr)
{
returnnewStringBuffer(str).reverse().toString();
}
2.最常用的方法:
publicstaticStringreverse3(Strings)
{
char[]array=s.toCharArray();
Stringreverse="";//注意这是空,不是null
for(inti=array.length-1;i>=0;i--)
reverse+=array[i];
returnreverse;
}
3.常用方法的变形:
publicstaticStringreverse2(Strings)
{
intlength=s.length();
Stringreverse="";//注意这是空,不是null
for(inti=0;i<length;i++)
reverse=s.charAt(i)+reverse;//在前面连接,而非常见的后面
returnreverse;
}
4.C语言中常用的方法:
publicstaticStringreverse5(Stringorig)
{
char[]s=orig.toCharArray();
intn=s.length-1;
inthalfLength=n/2;
for(inti=0;i<=halfLength;i++){
chartemp=s[i];
s[i]=s[n-i];
s[n-i]=temp;
}
returnnewString(s);//知道char数组和String相互转化
}
❺ 面向接口编程有什么好处
是面向对象程序设计的进化吧,COM就是一种实现,可以在接口类型间转换,客户程序不用跟随接口更新
❻ 面向接口编程和面向实现编程的区别
这个涉及到设计上的原则,也就是依赖倒转原则。举个简单的例子,我们经常用的操作数据库的方法,在jdk中定义的都是接口,由不同的数据库厂商实现,比如mysql的驱动,oracle的驱动,都是实现了jdk中定义接口标准。jdk中的设计就是面向接口的,而不同的数据库厂商就是面向实现的。
面向接口的好处就是,定义好接口标准,不管是谁只要按定义好的标准来实现,都可以无缝的切换,所以您应该发现,不管是用mysql也好,还是用oracle也都,您都是在使用jdk的api。
❼ 关于面向接口编程
跟你讲一个实际生活中的例子,你就会明白。
大家都用过音箱,把音频线接到电脑再接电源,就可以播放美妙的音乐。这是一个常见的例子。
编程中的接口,其实跟电脑与音箱之间那个音频接口的思想其实差不多。你接上高档一点的音箱它的音质会好一点,低档一点的也能听,A厂商的音箱也可以,B厂商的音箱也没什么问题。音箱厂商在设计音箱的时候,他们不会管你使用的是什么电脑、什么声卡,他们只在意音频接口的信号,而这些信号是格式是公开的。这样就使得声卡、音箱的可以独立设计与开发,大家遵循同样的接口规范就可以进行合作,而不必要了解对方的技术细节。
软件的开发同样会有合作的问题,比如团队与团队之间、公司与公司之间,往往是你开发一个模块,我开发一个模块,那来源不同的各个模块是如何协同动作呢?就是公开的接口定义在起作用。
以上简短的介绍,希望对你有所帮助
❽ java面向接口编程思想
A s=new B();
一个对象实例只能赋值给与它类型相同的引用、或者父类(包括接口)的引用。
B是A的实现类所以B的实例可以赋值给A的引用。
实例:确实的对象;引用:指向某一对象的名字。
这个耦合度是指:一个类(或者对象)对另一个类(或者对象)的依赖。
如果用类的继承,要求所有的具有某一个方法的一类对象都必须是指定类的子类对象,总是存在依赖,应用灵活度非常差!
❾ 面向接口编程
面向对象编程的时候,我们会考虑到两个问题,一个是类的定义,一个是实现对象,类经过实例化就是对象,比如现在有个类叫Student ,那么用这个类生成个对象,就是这个样子,Student s=new Student 这个s就是对象了。Student s 就是创建这个对象,=new Student() 就是在内存中真正的生成这个对象。我们在类里定义的一些方法,比如 public void show(){system.out.println('我是菜鸟')},那么,因为当前的类不是个静态类,所以这个方法是不能真正的实现的,说白了就是不能用 ,只有生成了这个类的对象才能实现这个方法,如 s.show(); 通过s调用 show 方法。
面向接口编程的意思是指在面向对象的系统中所有的类或者模块之间的交互是由接口完成的。概念是用来高度概括的,关键是理解意思。解释如下:A s =new B;在内存堆中创建一个B对象,在内存栈中创建一个引用A,A指向B。用A中的s.print()方法去调用B中的同名方法,这当然是正确的,因为B类实现了A接口。所谓的面向接口编程可以降低程序之间的耦合度,是指在具体的调用处都是接口进行的,并不依赖于具体类,在A s = new B;中,B可以被任意实现了接口A的其他类替换掉。在spring的IOC中面向接口编程降低了类之间的耦合度得到了很好的体现,建议你顺便去学习一下,可以加深你的理解。
❿ 什么是面向接口编程
在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程我想就是指按照这种思想来编程吧!实际上,在日常工作中,你已经按照接口编程了,只不过如果你没有这方面的意识,那么你只是在被动的实现这一思想;表现在频繁的抱怨别人改的代码影响了你(接口没有设计到),表现在某个模块的改动引起其他模块的大规模调整(模块接口没有很好的设计)等等。 Booch先生那天谈到Interaction Designer,它就是指做这类设计的人,只不过层次更高一些。我想目前我们的软件设计队伍中,这类人是最缺乏的人才之一。 1.关于接口的理解。 接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。 我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点繁烦。 接口的本身反映了系统设计人员对系统的抽象理解。 接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class); 第二类是对一个体某一方面的抽象,即形成一个抽象面(interface); 一个体有可能有多个抽象面。 抽象体与抽象面是有区别的。 2.设计接口的另一个不可忽视的因素是接口所处的环境(context,environment),系统论的观点:环境是系统要素所处的空间与外部影响因素的总和。任何接口都是在一定的环境中产生的。因此环境的定义及环境的变化对接口的影响是不容忽视的,脱离原先的环境,所有的接口将失去原有的意义。 3.按照组件的开发模型(3C),它们三者相辅相成,各司一面,浑然一体,缺一不可。 面向对象是指,我们考虑问题时,以对象为单位,考虑它的属性及方法 面向过程是指,我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现 接口设计与非接口设计是针对复用技术而言的,与面向对象(过程)不是一个问题 我认为:UML里面所说的interface是协议的另一种说法。并不是指com的interface,CORBA的interface,