java面向接口编程的理解_个人理解Java程序设计原则—面向接口编程

前言:

如果说类是对一类事物的抽象,那么接口就是对一类行为的抽象,因为它只规范了一组方法的调用特征而没有给出方法的具体实现,接口是实现面向抽象编程,从而达到代码间弱耦合的重要手段之一。

接口的重要作用之一:解耦

对于程序设计来说,接口的重要意义在于它的解耦作用。在程序设计中,适当使用接口可以对不同功能的程序设计模块进行有效的隔离。也就是说,服务方代码的任何变动不会蔓延到客户方,从而使程序的可维护性变的更强,这个也是强制作用带来的结果,如下是一个接口实现代码接口(隔离)作用的示例。

程序的代码:

1 /**

2 * 接口3 */

4 public interfaceprint {5 public voidprintChar();6 public voidprintNum();7 }8

9 /**

10 * 服务类11 */

12 class Serv implementsprint{13 public voidprintChar(){14 System.out.println("this is printChar");15 }16 public voidprintNum(){17 System.out.println("this is printNum");18 }19 }20

21 /**

22 * 客户类23 */

24 classClient {25 public void printClient(print s){ //以接口作为参数类型

26 s.printChar();27 }28 }29 /**

30 * 主类31 */

32 public classMain{33 public static voidmain(String[] args){34 new Client().printClient(newServ());35 }36 }

在本例子中,接口也遵循类的类型赋值兼容规则,即实现类可以被看做接口类型。那就是说,Serv类型对象可以被当做print对象来被printClient()方法所接口,这就带来了一个重要的优点,对于客户类中的printClient()方法来说,只要接口print不变,实现类Serv的代码无论怎么变都不会影响客户代码,简单点说,服务方的任何类型都不会蔓延到客户代码,即使服务方对服务进行升级时连服务类都改了,那也只需要在主类中作一个小的修改就好了。

面向接口编程的好处:

1、可以在使用类的时候更加清晰明了,更加的关注的是自己需要的功能,如下代码:

1 //以下三个实现类的定义中,使用面向接口定义的明显要比使用LinkedList定义要清晰2 //很清楚的定义了需要的类型集合,是队列还是链表,有助于代码的阅读

3 LinkedList lis=newLinkedList();4 Queue que=newLinkedList();5 List ls=new LinkedList();

在java源代码中,LinkedList类实现了Queue接口和List接口,而队列和链表是两种概念的数据结构集合。

2、对应着不同的接口,其实现类的实例对象有着不同的方法,使程序看起来更加合理。比如实现了Queue接口时,就可以使用其中的poll()方法和offer()方法,这个方法在List接口中就没有

以上就是个人的理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值