面向接口编程 学习 待整理

Posted feng9exe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向接口编程 学习 待整理相关的知识,希望对你有一定的参考价值。

面向接口:

契约与履行;

一致性;

 

机制复用;代码复用;

 

 

在spring的jdbc编程中,在引入数据库连接池的部分就做到了面向接口编程,以后无论换什么数据库连接池都不用修改代码

直接修改配置文件即可。可以屏蔽到大量的底层操作,这种编程方式在框架中得到广泛的应用,例如spring内部完全就

是面向接口编程的。

        如果不大量采用面向接口编程,框架几乎没法做到热插拨级别的松耦合,更别说为程序员带来大量的便利性,进行大量的封装。。。

--------------------- 

作者:615156165 

来源:CSDN 

原文:https://blog.csdn.net/u011212549/article/details/52351297 

版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

接口的双重性:

接口与接口之间:定义机制;

接口与实现之间:定义扩展;定义标准;

 

 

接口就是规划标准,有了标准去遵守就好扩展。

 

接口 抽象  很容易被松偶合这个词汇忽悠,实际上就是定制一套方法,所有实现由各自去完成。

 

好比定义一套产品数据管理(增、删、改、查)的抽象方法,或者接口声明这些方法,那么在Oracle或SQLServer的实现上只要遵循这个规划,那么上层只需要面向接口编程不用改动代码,而数据层可以轻松切换到Oracle或者是SQLServer。也就是所谓的开闭原则。

 

 

接口的好处其实要在编程中慢慢体会,分离实现,隔离变化。多看看设计模式上的例子就会发现接口的妙用。

 

接口电脑的插口

1 2 3 

这三个就好似USB的接口功能。他隐藏了实际功能,但提供给用户统一的操作界面和使用方式

 

认同大家的观点  其实接口是为了更规范 大家只要去实现就OK了 和插座的道理一样 不同的插座出来的电压或功能就不一样的

 

 

 

设计模式 分离

 

面向接口编程是面向分离编程,

面向抽象编程;

面向联系编程;

面向标准编程;

面向接口编程具有更大的稳定性;

 

Dependency and Coupling 依赖

 

 

面向标准编程

 

 

接口就是标准规范,就是定死了一个框架,你根据这个框架去执行!有了标准去遵守就容易扩展!我们只需要面向标准编程,而不用针对具体的实现类! 

 

总结:接口也就是一种规范!面向接口编程就类似于现实中遵守公司规定一样!这样增强了系统的灵活性、可维护性,减小影响!实现项目中常说的:高内聚、低耦合! 

 

 

https://blog.csdn.net/hbcztutu/article/details/78860816

https://blog.csdn.net/jj_nan/article/details/70161086

https://blog.csdn.net/qq376430645/article/details/9927225?utm_source=blogxgwz3

 

 

下面是我对面向接口编程的理解

 

优点:

 

1.程序结构清晰,使用方便

 

2.接口经过合理设计后,有利于程序设计的规范化,并可以并行开发,提高工作效率

 

3.实现了程序的可插拔性,对于不同的需求切换不同的实现,降低了耦合度,随着系统复杂性的提高这个优势会越来越明显

 

4.允许多重实现,弥补了继承的缺陷

--------------------- 

作者:泊川 

来源:CSDN 

原文:https://blog.csdn.net/wantken/article/details/31763669 

版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

面向接口编程和面向对象编程的区别

 

通过上文,我想大家对接口和接口的思想内涵有了一个了解,那么什么是面向接口编程呢?我个人的定义是:在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而不依赖具体类。

 

这样做的好处是显而易见的,首先对系统灵活性大有好处。当下层需要改变时,只要接口及接口功能不变,则上层不用做任何修改。甚至可以在不改动上层代码时将下层整个替换掉,就像我们将一个WD的60G硬盘换成一个希捷的160G的硬盘,计算机其他地方不用做任何改动,而是把原硬盘拔下来、新硬盘插上就行了,因为计算机其他部分不依赖具体硬盘,而只依赖一个IDE接口,只要硬盘实现了这个接口,就可以替换上去。从这里看,程序中的接口和现实中的接口极为相似,所以我一直认为,接口(interface)这个词用的真是神似!

 

 

为什么要使用面向接口编程

https://blog.csdn.net/z_Dendy/article/details/22725539

 

 

1.关于接口的理解。 

  接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。 

  我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点繁烦。 

  接口的本身反映了系统设计人员对系统的抽象理解。 

  接口应有两类:

         第一类是对一个体的抽象,它可对应为一个抽象体(abstract class); 

  第二类是对一个体某一方面的抽象,即形成一个抽象面(interface); 

  一个体有可能有多个抽象面。 

  抽象体与抽象面是有区别的。

 

https://blog.csdn.net/paul342/article/details/47272077

 

 

程序里的接口本人理解就是和现实生活中的接口没有什么区别主要就是为了程序的扩展,就像计算机的接口一样,设计计算机的时候在计算机上设计了USB接口,可以在以后,自己或别人来遵循这个接口开发USB接口的东西,可是是USB移动硬盘,可是是USB接口的数码相机,是什么我们不去关心,但是它们必须遵行接口的设计原则。。。

 

与面向接口编程对应的概念是对接。

 

定义接口:

实现接口:

功能对接:可替换对接;

 

https://bbs.csdn.net/topics/100054868

 

 

https://blog.csdn.net/hbcztutu/article/details/78860816

洞悉编程思想是我们学习语言过程中的必由之路,但注意对于编程思想的理解一定要建立在大量的代码实现经验上,不然只是在口头空谈编程思想而不去编程,根本无法深入理解思想的核心。 

面向对象思想的核心之一,就是模拟真实世界,把真实世界中的事物抽象成类,整个程序靠各个类的实例互相通信、互相协作完成系统功能,这非常符合真实世界的运行状况,也是面向对象思想的精髓。 

 


以上是关于面向接口编程 学习 待整理的主要内容,如果未能解决你的问题,请参考以下文章

Java中的面向接口编程

接口测试学习-python第七课(面向对象编程)

Spring学习:面向接口编程思想

面向接口编程的小例子

面向对象在JavaScript中的接口实现

面试官的窒息逼问: 到底什么是面向接口编程?