关于“接口”的理解
来源:互联网 发布:华为性格测试 知乎 编辑:程序博客网 时间:2024/05/29 08:21
【词语的定义】
接口;由两侧特性所定义的共享边界。接口可以在物理级、在软件级或作为纯逻辑运算来描述。
[1. 1.关于接口的理解。(这段话是我在网上看到的感觉说的很有道理)
接口从更深层次的理解,应是定义(规范,约束,有一定通用性)与实现(名实分离的原则)的分离。
我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点繁烦。
接口的本身反映了系统设计人员对系统的抽象理解。
接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstractclass);
第二类是对一个体某一方面的抽象,即形成一个抽象面(interface);
一个体有可能有多个抽象面。
抽象体与抽象面是有区别的。
]
[2.接口解决什么问题:
1.解决实现与调用分离,耦合度降低
2.多种不同实现共同协作(例如如下例子更换数据库操作)
例如:填写员工基本信息保存到数据库中,数据库用的是Mysql。 ]
- //实现很简单定义员工类:
- 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,接口可以实例子类
用户可以主动查询某个商品的价格。
用户可以订购某个商品的价格,当商品价格低于用户指定的阈值时,该服务通知订购用户当前的价格。
多个用户可同时使用该服务。
现要使用面向对象的技术,如CORBA技术实现该服务:请描述该服务对象和客户端程序分别需要实现的接口。接口可以采用任何一种程序设计语言描述(甚至夹杂自然语言),但要明确每个接口名、接口中的方法名、方法的返回值和参数名以及类型。
商品价格查询服务的接口:
方法一:价格查询。
Float getPrice(String goodID)throws someFailure;返回值为价格。
方法二:订购价格变化情况
Void subscribe(String goodID, float myInterestPrice, Ref myCallback)throws some someFilure
其中,myInterestPrice为指定的价格阈值,myCallback为实现nicePrice()方法的客户端回调接口对象引用。
客户端实现的接口
方法一:
Void nicePrice(String goodID, float nicePrice) throws some someFilure;
其中,nicePrice是低于阈值的新价格。
参数类型和名字等,可在合理范围内变动。缺失红色部分,不扣分。
每个方法5分。
[6.现在工作中的一些问题
下面是我一直疑惑的一个问题,也是很多初学者相信也有类似的疑惑:
在日常的应用都是定义一个类之前先定义一个接口,之前我有几个同学问我这样定义到底是什么意思,当时怎么回答的我也不记得了,只是别人都这么用我们也这么用肯定不会错的,现在才明白对Java的基础还是不扎实,只顾着写代码,去实现功能,没有深入的理解接口的涵义。其实在实际的开发中根本没有遇到要把某个模块重新实现的情况,我们只会在原来的基础上修改那些代码。]
----------------------------------------------------------------------------------------------------------------------------------------------------------------分割线
一个非常好的例题及解答。有助于接口的实现与调用的理解;以及回调函数如何使用的理解。
2、(15分)现要为某网上商城实现一个商品价格查询服务,该服务具有以下功能:
参考资料:
API和接口的一些思考:http://www.programgo.com/article/66122929530/;jsessionid=CE2BB56135CCCE81D1A27CA54EBBADB1
Java中接口深入理解:http://www.programgo.com/article/59223693723/;jsessionid=CE2BB56135CCCE81D1A27CA54EBBADB1
Java接口:http://www.w3cschool.cc/java/java-interfaces.html
一篇对接口使用很好的说明,通俗易懂(转贴):http://www.programgo.com/article/9162133391/
- 关于接口的理解。
- 关于《接口》的理解
- 关于“接口”的理解
- 关于接口的理解
- 关于接口的理解
- 关于接口我的理解
- 【引】关于接口的理解
- 关于接口的理解问题
- 关于接口的深刻理解
- 关于接口的一个理解
- 关于接口的理解2
- 混乱的关于接口(Interface)的理解!
- 关于接口的多继承的理解
- 关于面象接口编程的理解
- c++关于封装、接口的简单理解
- 关于C#接口作用的理解
- 关于Collection接口的个人理解
- 关于java接口的通俗理解
- Linux添加 用户
- Functional MRI (second edition) -- 1. An introduction to fMRI
- matlab pca 函数 输入输出数据的意义
- 2015061409 - 怎么看公司给新员工的薪水高于老员工的薪水?
- spark入门讲座
- 关于“接口”的理解
- 2015061410 - 推荐知乎周刊
- xxx cannot be resolved to a type 错误解决方法
- Sidekiq错误处理
- github使用
- iOS开发系列--UITableView全面解析
- 解放双手——Android自动化测试
- Unity3D占用内存太大的解决方法
- list