站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题接口interface和委托delegate的详细解释,最好能举例说明,我基本是一头雾水,不知道怎么广泛应用

接口interface和委托delegate的详细解释,最好能举例说明,我基本是一头雾水,不知道怎么广泛应用

摘要: 接口interface和委托delegate的详细解释,最好能举例说明,我基本是一头雾水,不知道怎么广泛应用


请回答


耶!!沙发

楼主我支持你
-----------------
松自萧萧云自飘
风中独酌亦逍遥
抚却凡愁与尘念
琴韵未解恨已销


[3:14:30 PM] 张浩 says: 忙否
[3:15:11 PM] Cheney Lee says: 在改你的那个日期控件
[3:15:26 PM] 张浩 says: 我还是问接口的问题
[3:16:03 PM] 张浩 says: 比如我定义一个接口,里面有一个方法,属性,索引,事件,
[3:17:36 PM] 张浩 says: 写一个类 :实现这个接口,用是会用了,但是我还是不明白接口在开发中怎么大规模使用,感觉好象限制了实现该接口的类
[3:18:08 PM] Cheney Lee says: 我不知道如何跟你说
[3:18:26 PM] 张浩 says: 说简单点,
[3:18:26 PM] Cheney Lee says: 接口可以定义一个变量的类型
[3:18:31 PM] 张浩 says: 对
[3:18:42 PM] Cheney Lee says: 他比用class定义要好
[3:19:28 PM] 张浩 says: 就是说,继承了该接口的class必须也将该接口中的变量付值,
[3:20:04 PM] 张浩 says: 但是还不是要重新定义一遍,我为什么不就在class 中定义呢
[3:20:32 PM] Cheney Lee says: 现在流行面向接口的编程
[3:20:43 PM] Cheney Lee says: 面向接口好处多多
[3:20:54 PM] 张浩 says: 说几个
[3:21:00 PM] Cheney Lee says: 比如一个项目有多个模块
[3:21:08 PM] Cheney Lee says: 你做a模块
[3:21:12 PM] Cheney Lee says: 我做b模块
[3:21:17 PM] 张浩 says: 对
[3:22:06 PM] Cheney Lee says: a和b是需要沟通的,也就是说 a需要调用b中的一个功能,比如调用b的一个持久化功能
[3:22:32 PM] 张浩 says: 继续
[3:23:29 PM] Cheney Lee says: 那么我(b)就给你提供一个接口 interface persist(){ void write(string s)}
[3:24:05 PM] Cheney Lee says: 如果你要持久化一个string,就直接用我的接口:
[3:24:08 PM] 张浩 says: 理解,然后呢,接口只是一个载体,不能具体时间呀
[3:24:47 PM] 张浩 says: 但是void wirite(string s)这个方法的内容的,再哪,
[3:25:00 PM] Cheney Lee says: Persist mypersist;
mypersist.write("我是张浩");
[3:25:27 PM] Cheney Lee says: 这个write函数可以还没有实现
[3:26:04 PM] Cheney Lee says: 比如一个月后,我实现了这个interface
[3:26:38 PM] 张浩 says: 就是说a中可以先定义,具体的实现可以后面来完成,
[3:27:11 PM] Cheney Lee says: class Dbpersist implements Persist{
void write(String s){
//写数据库
}
}
[3:27:18 PM] Cheney Lee says: 对了
[3:27:33 PM] Cheney Lee says: 你总算搞明白了
[3:28:12 PM] Cheney Lee says: 并且我可以实现写文件的持久化,或写数据库的持久化,对你来说,调用都是一样的
[3:28:22 PM] 张浩 says: 接口的实现,可以在任何类中实现吗,可以实现n中不同的结果吧,那不成了重载
[3:28:26 PM] Cheney Lee says: class Filepersist implements Persist{
void write(String s){
//写文件
}
}
[3:28:56 PM] Cheney Lee says: 你看,我现在有两个class实现了Persist接口
[3:29:05 PM] Cheney Lee says: 一个写数据库,一个写文件
[3:29:22 PM] Cheney Lee says: class Dbpersist implements Persist{
void write(String s){
//写数据库
}
}


class Filepersist implements Persist{
void write(String s){
//写文件
}
}
[3:29:46 PM] 张浩 says: 我可以这样写吗
[3:29:48 PM] Cheney Lee says: 但是你根本就不必知道这两个class
[3:30:08 PM] 张浩 says: class filepersist :Persisit{}
[3:30:23 PM] Cheney Lee says: 你的代码只需要这样
[3:30:39 PM] Cheney Lee says: 比如你的一个调用我的class的方法
[3:31:36 PM] Cheney Lee says: void zhanghaoWrite( Persist myPersist, String s){
myPersist.write(s);
}
[3:32:10 PM] Cheney Lee says: 对你来说,你只需要知道Persist借口
[3:32:12 PM] 张浩 says: 不是,我的意思是你的类继承了该接口
[3:32:43 PM] Cheney Lee says: 在java版开个200分的帖子,否则我不说了
[3:33:13 PM] 张浩 says: 知道了,
[3:34:22 PM] Cheney Lee says: void zhanghaoWrite( Persist myPersist, String s){
myPersist.write(s);
}
这就是典型的委托模式,你把持久化的任务,委托给我的interface了
[3:35:00 PM] 张浩 says: 有点点懂了
[3:35:16 PM] 张浩 says: 什么时候面谈一次呀,我请你吃饭
[3:35:30 PM] 张浩 says: 星期天我要去面试,这几天狂补充
[3:35:44 PM] Cheney Lee says: 至于是持久化的数据库还是文件,你根本就不必关心
[3:35:54 PM] Cheney Lee says: 哪个公司?
[3:36:11 PM] Cheney Lee says: 给我开个贴,在java版
[3:36:49 PM] 张浩 says: 知道了,老大
[3:36:59 PM] Cheney Lee says: (handshake)
[3:37:25 PM] Cheney Lee says: 开了告诉我啊,我整理一下,就发到帖子上
[3:37:28 PM] 张浩 says: 我就开个委托和接口的详细解释吧,
[3:37:38 PM] 张浩 says: 100如何,成交吧
[3:37:44 PM] Cheney Lee says: 200
[3:38:00 PM] Cheney Lee says: 不知道你能否开200的
[3:38:02 PM] 张浩 says: 我没有这么多分呀
[3:38:19 PM] Cheney Lee says: 快开
[3:38:25 PM] 张浩 says: 奶奶的



算你狠!

坚决不看人家的聊天记录!


靠,这就是你整理的呀


接口是一种基本描述和约束,委托就是函数指针或者函数对象.



↑返回目录
前一篇: <
后一篇: 编Java是否要JDK?