51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 6865|回复: 10
打印 上一主题 下一主题

[连载] 精通RFT-05: Java中的面向对象: 接口

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-4-8 22:27:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
何为接口?既然是面向对象,所有的概念都是从对象中来,对象又从何而来?从真实世界中来,接口也不例外,我们对接口的理解只需要两个字即可概括:规格。

举个简单的例子,大家应该都有过攒机的经历,那么我们是否考虑过一个问题:为什么各个厂家的零部件居然可以安装在一起工作呢?答案当然谁都知道,因为我们对每一个零部件都定义了规格,内存条的插脚必须满足规格才能刚好与主板上的插槽相吻合,哪怕是一根网线,也必须满足RJ45的规格,才能刚好插到网卡的插口中,一旦特立独行,将没有市场,同样的,大家可以想像,如果世界上没有规格,将会变得乱七八糟。

就像现在的操作系统一样,没有一个统一的规格,特别是嵌入式操作系统,更是五花八门,带来的最大的问题就是一款软件需要开发N多的不同平台下的版本,于是乎如果你能开发出一个号称可以跨平台的软件的话,那么将备受欢迎。这只是没有办法的办法,如果在N多年前,当刚有操作系统的时候就能把操作系统的统一规格定义,如果以后哪家厂商要开发操作系统,必须按照这样的规格来进行,那该多好,不过,如果真这样了,恐怕好多程序员又要失业了。

言归正传,接口就是这样一种东西,定义一种规格,以保持团队开发的一致性和规范性。我们仍然举现实的例子来说明这个问题,我们定义一种规格:厂家生产的“门”,必须要满足两个条件,可以“开”,可以“关”,如果你的门不能“关”,将不是一个合格的门,当然,除了开关以外,你还可以定义你的门可以“锁”,可以“感应”等,无论你把门做得多花哨,你必须满足“开”和“关”的要求。

用JAVA首先定义这个接口(注:接口中不需要也不能定义任何实际的实现代码,只声明这个规格即可):

package com.agilejoy.rft;

public interface IDoor {
        public void openDoor();
        public void closeDoor();
}

接口定义好以后,便可以定义具体实现的类,只不过这个类有点特别,它必须要实现接口中的两个方法,否则编译不通过,在此我们生成一个RoomDoor表示房间的门,不管什么门,总是要有开有关才行:

package com.agilejoy.rft;

public class RoomDoor implements IDoor {
        public void openDoor() {
                System.out.println("Room's door is open ...");
        }
        public void closeDoor() {
                System.out.println("Room's door is closed ...");
        }
}

可能有人会问,为什么我非得要implements它,还要受这么多限制,其实答案非常简单,你如果造一个不符合规格的内存条出来,插不进标准插槽,卖得出去吗。

另外,对于下一节介绍的面向对象非常非常重要的特性:多态,接口必不可少。请关注下一节:[连载] 精通RFT-06: Java中的面向对象: 多态

(声明:本文版权归作者个人所有,如需转载,请注明出处,如有需要,请联系QQ: 15903523 (强子))
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-4-17 17:00:07 | 只看该作者
为什么没有连载了?挺忙么,强哥!?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-4-21 23:57:47 | 只看该作者
这几天一直在弄AgileOne 1.1的版本,有好多问题要解决的,所以挺忙的。现在1.1版本已经发布了,时间能空下来了。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-5-24 10:21:23 | 只看该作者
太精辟了  我喜欢
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-9-10 11:44:21 | 只看该作者
通俗易懂,支持一下。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2011-2-18 13:45:04 | 只看该作者
每帖必顶
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2011-6-5 09:11:57 | 只看该作者
强子老师的概括太精辟了,言简意赅,一定要坚持看完!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2018-6-18 17:17
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    8#
    发表于 2011-8-10 23:41:45 | 只看该作者
    不错,期待更多连载
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2011-10-24 13:50:10 | 只看该作者
    有个项目在windows和Linux平台下都有客户端,需要一个跨平台测试工具;我用RFT8.1在Fedora14下安装,安装之后脚本编辑器提示Functional Test Script Editor is not active;有没有碰到这样的问题?如何解决?谢谢
    期盼回复
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2011-11-1 23:03:18 | 只看该作者
    好文章,把接口分析的很在理!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2011-12-1 09:25:29 | 只看该作者
    对于接口的掌握,不是两句话就能说的清楚的。面向接口编程是要在实践中掌握和总结的
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-3 10:23 , Processed in 0.076664 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表