㈠ 面向切面编程和面向接口编程的区别
谈谈自己的理解吧:
面向切面编程:
手段:分离业务的主逻辑和次逻辑的一种思想。
目的:解决的是逻辑分离问题(主逻辑和次逻辑分开,其实主要是分离业务逻辑和非业务逻辑分开)。
案例:我们开发项目的时候基本都要去连接数据库操作数据等,但是都会涉及到事务的提交,这时我们就用到了面向切面编程,我们在业务层只写自己的业务逻辑,提交事务这一块统一的动作我们就浓缩到了一块儿统一处理,形象一点比喻就是我们做什么事之前都以一个准备动作或结束动作的时候就把它统一起来,只关注我们要完成的事,这些准备动作统一完成!
类似的面向切面编程案例还有:系统日志的记录、请求的拦截等
面向接口编程:
手段:通过接口规约对象的属性和方法,是面向对象一部分。
目的:统一标准问题,让大家不至于各行其事而对代码的可读性造成影响(公用部分行为)。
案例:其实这个比较好解释,就是有一件事,需要大家去完成,但是给你规定了完成的方式,你只能怎么去做,这时我们当中任何一个人都能去完成这件事,只不过因人而异会有效率和风格的差异,但是都是按照事先的规定来的!比如:让你去给数据库添加一行数据返回受影响的行数,这里大家都去实现接口写SQL,中间可能会有差异,但是最后都得返回一个int类型的受影响行数回来
大体意思就是说:接口给我们规定了完成一个任务的标准,但是具体过程不限制,任何人都能通过遵循的规定去完成这件事!这样扩展性就很强!
个人水平有限,如果不满意请参考:网页链接
㈡ 什么是面向接口编程
在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程我想就是指按照这种思想来编程吧!实际上,在日常工作中,你已经按照接口编程了,只不过如果你没有这方面的意识,那么你只是在被动的实现这一思想;表现在频繁的抱怨别人改的代码影响了你(接口没有设计到),表现在某个模块的改动引起其他模块的大规模调整(模块接口没有很好的设计)等等。 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的引用。
实例:确实的对象;引用:指向某一对象的名字。
这个耦合度是指:一个类(或者对象)对另一个类(或者对象)的依赖。
如果用类的继承,要求所有的具有某一个方法的一类对象都必须是指定类的子类对象,总是存在依赖,应用灵活度非常差!
㈥ 有谁帮我阐述一下:面向接口编程的思想,及其优点
首先你要知道软件工程的概念是什么!简单的说软件工程就是让程序模块化,把特定的代码逻辑独立封装,只传入参数和返回参数,外部集中调用。这也就是C、c++、java、c#中的方法、函数、类库头文件等体现。
而接口也是基于这个目的产生的。首先说说为什么要用到接口,我是学java的,所以以java举例,前面说了把代码逻辑独立的封装确实能增加代码的重用性,具有更好的性能。
但是同样的问题也产生了,如果系统结构很复杂,多个开发人员就不能做到有效的协作了。就像用零件拼装一辆汽车一样,很多工人一起工作,他们怎么知道哪2个零件之间结合在一起,怎么耦合。这和软件工程很类似,多个开发人员一起开发不同的模块,他们同样也会遇到程序结构耦合的问题,这都是在开发时很令人头疼的问题。
接口就是为解决这个问题诞生的,他把方法和类封装的更彻底,只显示入口参数和返回参数,而具体的实现类,和方法实现都可以完全隐藏起来,这样做就可以制定一个统一的标准,即使因为开发人员人多脑杂,模块间的代码风格和思路不同,也完全不影响整个系统的架构,这样使得系统的复杂性得到有效控制,降低开发的难度和成本。举个生动的例子就是电脑主板的生产商他无法知道他生产的主板上将要用的CPU是什么型号的,用的内存是什么规格的。但是只要制定统一的行业标准,他就可以预留指定的接口,无论你CPU是基于什么工作原理,也无论你内存多大,只要符合此接口的标准,各个原件就能有效协作组成一台电脑。
㈦ 面向接口编程
面向对象编程的时候,我们会考虑到两个问题,一个是类的定义,一个是实现对象,类经过实例化就是对象,比如现在有个类叫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中面向接口编程降低了类之间的耦合度得到了很好的体现,建议你顺便去学习一下,可以加深你的理解。
㈧ 面向接口编程怎么理解,不要粘贴复制的,要自己的理解说出来
看你是从编程思想还是编程技术看。编程思想面向接口就是至下而上,先规划好要做的事,然后定义完成事情必须的接口,之后实现此接口。编程技术就是楼上说的了。还有就是一些框架支持注入类的,配置期或者运行的时候再动态注入实现接口的类,达到不换内核实现功能更新。
㈨ Java语言:什么叫面向接口编程
面向接口编程不是一两句话可以完全说清楚,如果是面试,你就回答,面向接口编程实现了实现类和调用类的分离,即解耦。
㈩ JAVA什么是面向接口编程
不知道怎么给你说清楚
形象一点,c语言是面向过程编程,就是按程序执行的顺序编
而c++和java都是面向对象编程,他们把变量和方法都封装到类里面,通过对象执行程序
但是c++中的类是可以继承的,而JAVA的不能继承,只能通过实现接口来完成类似于c++继承的功能,从这个角度看java是面向接口编程