当前位置:首页 » 编程软件 » 面向接口编程

面向接口编程

发布时间: 2022-01-10 08:23:53

⑴ 什么是面向接口编程

在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程我想就是指按照这种思想来编程吧!实际上,在日常工作中,你已经按照接口编程了,只不过如果你没有这方面的意识,那么你只是在被动的实现这一思想;表现在频繁的抱怨别人改的代码影响了你(接口没有设计到),表现在某个模块的改动引起其他模块的大规模调整(模块接口没有很好的设计)等等。 Booch先生那天谈到Interaction Designer,它就是指做这类设计的人,只不过层次更高一些。我想目前我们的软件设计队伍中,这类人是最缺乏的人才之一。 1.关于接口的理解。 接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。 我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点繁烦。 接口的本身反映了系统设计人员对系统的抽象理解。 接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class); 第二类是对一个体某一方面的抽象,即形成一个抽象面(interface); 一个体有可能有多个抽象面。 抽象体与抽象面是有区别的。 2.设计接口的另一个不可忽视的因素是接口所处的环境(context,environment),系统论的观点:环境是系统要素所处的空间与外部影响因素的总和。任何接口都是在一定的环境中产生的。因此环境的定义及环境的变化对接口的影响是不容忽视的,脱离原先的环境,所有的接口将失去原有的意义。 3.按照组件的开发模型(3C),它们三者相辅相成,各司一面,浑然一体,缺一不可。 面向对象是指,我们考虑问题时,以对象为单位,考虑它的属性及方法 面向过程是指,我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现 接口设计与非接口设计是针对复用技术而言的,与面向对象(过程)不是一个问题 我认为:UML里面所说的interface是协议的另一种说法。并不是指com的interface,CORBA的interface,

java面向接口编程思想

A s=new B();
一个对象实例只能赋值给与它类型相同的引用、或者父类(包括接口)的引用。
B是A的实现类所以B的实例可以赋值给A的引用。

实例:确实的对象;引用:指向某一对象的名字。

这个耦合度是指:一个类(或者对象)对另一个类(或者对象)的依赖。
如果用类的继承,要求所有的具有某一个方法的一类对象都必须是指定类的子类对象,总是存在依赖,应用灵活度非常差!

⑶ 为什么要面向接口编程

在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程就是指按照这种思想来编程。 写小的应用程序看不到接口的优势,写大点的程序马上就显示出接口的优势,越大越明显.所以还是从现在开始养成面向接口编程的习惯.写多了程序就会觉得优势显而易见.
据不同含量按说明书使用。初次喷雾在团棵期进行,

⑷ JAVA什么是面向接口编程

不知道怎么给你说清楚
形象一点,c语言是面向过程编程,就是按程序执行的顺序编
而c++和java都是面向对象编程,他们把变量和方法都封装到类里面,通过对象执行程序
但是c++中的类是可以继承的,而JAVA的不能继承,只能通过实现接口来完成类似于c++继承的功能,从这个角度看java是面向接口编程

⑸ 什么是面向接口编程,它的好处是什么

在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就 不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系 统设计的主要工作内容。面向接口编程就是指按照这种思想来编程
补充:我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理想的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点麻烦。

⑹ 面向接口编程和面向实现编程的区别

这个涉及到设计上的原则,也就是依赖倒转原则。举个简单的例子,我们经常用的操作数据库的方法,在jdk中定义的都是接口,由不同的数据库厂商实现,比如mysql的驱动,oracle的驱动,都是实现了jdk中定义接口标准。jdk中的设计就是面向接口的,而不同的数据库厂商就是面向实现的。
面向接口的好处就是,定义好接口标准,不管是谁只要按定义好的标准来实现,都可以无缝的切换,所以您应该发现,不管是用mysql也好,还是用oracle也都,您都是在使用jdk的api。

⑺ 面向接口编程

面向对象编程的时候,我们会考虑到两个问题,一个是类的定义,一个是实现对象,类经过实例化就是对象,比如现在有个类叫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中面向接口编程降低了类之间的耦合度得到了很好的体现,建议你顺便去学习一下,可以加深你的理解。

⑻ 何谓面向接口编程其思想实质是什么

在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程就是指按照这种思想来编程

⑼ 关于面向接口编程

跟你讲一个实际生活中的例子,你就会明白。
大家都用过音箱,把音频线接到电脑再接电源,就可以播放美妙的音乐。这是一个常见的例子。
编程中的接口,其实跟电脑与音箱之间那个音频接口的思想其实差不多。你接上高档一点的音箱它的音质会好一点,低档一点的也能听,A厂商的音箱也可以,B厂商的音箱也没什么问题。音箱厂商在设计音箱的时候,他们不会管你使用的是什么电脑、什么声卡,他们只在意音频接口的信号,而这些信号是格式是公开的。这样就使得声卡、音箱的可以独立设计与开发,大家遵循同样的接口规范就可以进行合作,而不必要了解对方的技术细节。

软件的开发同样会有合作的问题,比如团队与团队之间、公司与公司之间,往往是你开发一个模块,我开发一个模块,那来源不同的各个模块是如何协同动作呢?就是公开的接口定义在起作用。

以上简短的介绍,希望对你有所帮助

⑽ 面向切面编程和面向接口编程的区别

谈谈自己的理解吧:

面向切面编程:

手段:分离业务的主逻辑和次逻辑的一种思想。

目的:解决的是逻辑分离问题(主逻辑和次逻辑分开,其实主要是分离业务逻辑和非业务逻辑分开)。

案例:我们开发项目的时候基本都要去连接数据库操作数据等,但是都会涉及到事务的提交,这时我们就用到了面向切面编程,我们在业务层只写自己的业务逻辑,提交事务这一块统一的动作我们就浓缩到了一块儿统一处理,形象一点比喻就是我们做什么事之前都以一个准备动作或结束动作的时候就把它统一起来,只关注我们要完成的事,这些准备动作统一完成!

类似的面向切面编程案例还有:系统日志的记录、请求的拦截等

面向接口编程:

手段:通过接口规约对象的属性和方法,是面向对象一部分。

目的:统一标准问题,让大家不至于各行其事而对代码的可读性造成影响(公用部分行为)。

案例:其实这个比较好解释,就是有一件事,需要大家去完成,但是给你规定了完成的方式,你只能怎么去做,这时我们当中任何一个人都能去完成这件事,只不过因人而异会有效率和风格的差异,但是都是按照事先的规定来的!比如:让你去给数据库添加一行数据返回受影响的行数,这里大家都去实现接口写SQL,中间可能会有差异,但是最后都得返回一个int类型的受影响行数回来

大体意思就是说:接口给我们规定了完成一个任务的标准,但是具体过程不限制,任何人都能通过遵循的规定去完成这件事!这样扩展性就很强!

个人水平有限,如果不满意请参考:网页链接

热点内容
萝卜干存储 发布:2024-09-20 17:21:37 浏览:714
苹果手机如何迁移软件到安卓手机 发布:2024-09-20 17:21:34 浏览:691
查看服务器ip限制 发布:2024-09-20 16:56:27 浏览:388
p搜系统只缓存1页为什么 发布:2024-09-20 16:48:51 浏览:838
上网的账号和密码是什么东西 发布:2024-09-20 16:31:31 浏览:612
安卓手机王者荣耀如何调超高视距 发布:2024-09-20 16:31:30 浏览:428
安卓G是什么app 发布:2024-09-20 16:23:09 浏览:81
iphone怎么压缩文件 发布:2024-09-20 16:08:18 浏览:356
linux查看用户名密码是什么 发布:2024-09-20 16:03:20 浏览:744
mac执行python脚本 发布:2024-09-20 15:58:52 浏览:779