免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2687 | 回复: 10
打印 上一主题 下一主题

不知道什么时候可以写接口?请指教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-19 09:01 |只看该作者 |倒序浏览
先定义一个接口
public interface Command
{
  public abstract void execute ( );
}


然后再定义三个类实现这个接口:
public class Engineer implements Command {

  public void execute( ) {
    //do Engineer's command
  }
}
public class Programmer implements Command {

  public void execute( ) {
    //do programmer's command
  }
}

public class Politician implements Command {

  public void execute( ) {
    //do Politician's command
  }
}


这样做有什么意义吗?我也可以在三个类中写三个方法来完成我想要做的事情。不一定非要实现接口,这样做可不可以?请大家说说。

论坛徽章:
0
2 [报告]
发表于 2004-02-19 10:34 |只看该作者

不知道什么时候可以写接口?请指教

看看23种设计模式中创建型模式。

论坛徽章:
0
3 [报告]
发表于 2004-02-19 10:57 |只看该作者

不知道什么时候可以写接口?请指教

我看了一下,还是不能领会。能不能帮我概括和提示一下。
接口里面是没有具体的实现的,
好象接口的存在就是为了体现面向对象的关系
比如:  会报警的门  something extends "门" implements "报警"

如果写成:  public class 报警门
{
.......
}

可不可以?
麻烦大家指点一下,我困扰死了。

论坛徽章:
0
4 [报告]
发表于 2004-02-20 08:31 |只看该作者

不知道什么时候可以写接口?请指教

是可以,接口主要是为了抽象出共同的行为的。
比如有个类
class 工商局安全科{
    public int 检查有报警功能的产品(。。。){
          //kajfajfjafjadjfsa
   }

    public int 检查所有的门禁类产品(){
    }
}

你觉得第一个函数的参数怎么写?
是不是应该有个"Interface 报警",然后所有能报警的产品都继承这个接口?

论坛徽章:
0
5 [报告]
发表于 2004-02-20 09:10 |只看该作者

不知道什么时候可以写接口?请指教

谢谢 sakulagi,
“然后所有能报警的产品都继承这个接口”,这个我可以理解。因为在程序结构上可以体现对象之间的关系。然后接口仅仅是为了体现关系而存在的吗?毕竟继承了接口之后,所有能报警的产品的类中还是要需要写不同实现报警的方法的。
所以我想问:
这样做了之后在代码重用方面能带来什么样的便利

论坛徽章:
0
6 [报告]
发表于 2004-02-20 09:22 |只看该作者

不知道什么时候可以写接口?请指教

使用接口的直接后果是

  1. public int 检查有报警功能的产品(。。。){
复制代码
可以在以后很容易复用,而不是实现这个接口的类有多大的复用性的问题(个人看法,不一定对)

论坛徽章:
0
7 [报告]
发表于 2004-02-20 09:25 |只看该作者

不知道什么时候可以写接口?请指教

实际上也是一个decoupling 的过程,这样操作实现这个接口的所有的类的对象的时候,使用者和被使用着之间是一个contract,而不关心对方的实现细节。

论坛徽章:
0
8 [报告]
发表于 2004-02-20 10:45 |只看该作者

不知道什么时候可以写接口?请指教

那么好象这样在几个人的开发中,可以提高标准化程度。并且也容易体现出对象之间的关系。
再问一句:
这样写 interface Something extends Otherthing
{
.......
}
可不可以?

论坛徽章:
0
9 [报告]
发表于 2004-02-20 12:51 |只看该作者

不知道什么时候可以写接口?请指教

可以。

论坛徽章:
0
10 [报告]
发表于 2004-02-20 13:06 |只看该作者

不知道什么时候可以写接口?请指教

麻烦sakulagi ,你可不可以给我一个这样的例子。让我看看一般在哪里应用到interface Something extends Otherthing
{
.......
}
或者跟我说一下这样做有什么意义?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP