请回答

解决方案 »

  1.   

    [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: 奶奶的