Java中接口深入理解

[list]


[下面是结合实际开发中的一些问题和我自己对接口的理解做个总结,我们主要从下面几个问题开始:

1. 什么是接口
2. 接口解决什么问题
3. 如果没有接口怎么解决
4. 在开发中如何正确和更好的应用
5. 接口不能做什么 (缺点)]
6. 现在使用中的一些问题
[/list]
[1. 1.关于接口的理解。(这段话是我在网上看到的感觉说的很有道理)
接口从更深层次的理解,应是定义(规范,约束,有一定通用性)与实现(名实分离的原则)的分离。
我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点繁烦。
接口的本身反映了系统设计人员对系统的抽象理解。
接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class);
第二类是对一个体某一方面的抽象,即形成一个抽象面(interface);
一个体有可能有多个抽象面。
抽象体与抽象面是有区别的。
]
[list]
[2.接口解决什么问题:
1.解决实现与调用分离,耦合度降低
2.多种不同实现共同协作(例如如下例子更换数据库操作)
例如:填写员工基本信息保存到数据库中,数据库用的是Mysql。 ]
[/list]

//实现很简单定义员工类:
public Employee {

}
//定义接口
public IEmployeeDAO {
public int saveEmployee(Employee employee);
}
//定义EmployeeDAOImpl 类 实现IEmployeeDAO 接口
public EmployeeDAOImpl implements IEmployeeDAO {
public int saveEmployee(Employee employee);
}
//先公司将系统升级,数据改成Orcal
//我们只需将实现类更换掉就可以了 运行测试OK


3.如果没有接口怎么办
1.刚刚那个例子要更换数据库,就要重新定义EmployeeNewDAO类和saveEmployee方法。
上面的调用也要更改,工作量可想而知
4.开放中如何更好的应用
在实际的开发总如何更好的应用还在摸索和学习总,希望有看到这篇文章的人共同学习和 探讨.

5.接口不能做什么
接口不能有实现方法,有人说这是接口的缺点,但是这正是接口最高的价值,把实现封装了,接口不能new,接口可以实例子类

[list]
[6.现在工作中的一些问题
下面是我一直疑惑的一个问题,也是很多初学者相信也有类似的疑惑:
在日常的应用都是定义一个类之前先定义一个接口,之前我有几个同学问我这样定义到底是什么意思,当时怎么回答的我也不记得了,只是别人都这么用我们也这么用肯定不会错的,现在才明白对Java的基础还是不扎实,只顾着写代码,去实现功能,没有深入的理解接口的涵义。其实在实际的开发中根本没有遇到要把某个模块重新实现的情况,我们只会在原来的基础上修改那些代码。]
[/list]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值