本帖最后由 yeagen 于 2011-09-07 10:58:00 编辑

解决方案 »

  1.   

    你这仅仅是一个dog,假如有10个实现接口的dog呢?而且每个人的eat都不一样,那么你只需要new不同的dog即可,而不用去理会eat的实现是什么。接口仅仅是作为定义而存在,目的是不让你跳出这个圈子……接口编程,能够让你的程序更加的结构化,同时更加的规范化。而且,接口编程,是为了架构而服务,不是为了你而服务,我基本就这么理解
      

  2.   

    疯狂动物运动会
    Animal[] animalArray=new Animal[1000];//马拉松哦里面有阿猫 阿狗 猪牛羊..................
    animalArray[0] = new cat()
    animalArray[1] = new dog()
    ......
    好了 你现在让它们开始跑把for(int i=0,i<1000,i++){
    animalArray[i].run()
    }如果是直接的话 你能用for循环吗~ 当然还有其他问题 多态.......工厂模式.....
      

  3.   

    你写的这种例子永远都不能体现接口的真正用途。。Net有IDispose接口
    我们会写如下代码,只要是继承自IDispose接口就可以这样写
    using(类 对象 = new 类构造())
    {
         你的操作。
    }
    当执行完毕后,会自动调用对象的Dispose()方法进行释放。接口定义的行为与规范,必须牢记。。
    接口只有一个,但是实现类会有很多,你怎样分辨呢用接口
      

  4.   

    这就要看你的需求了!如果你仅仅只有一个dog类,你写的程序就是围绕dog的!那就没必要去建立一个接口!
    2楼的例子就很好!还有如果dog,cat等是存在数据库的,还可以利用反射以及数据库中读出的数据直接判断是dog.eat()还是cat.eat()。
    还有一种情况,如果两个人分工合作,一个负责数据库操作,一个负责表示层的操作!如果没有一个统一的接口,他们是没有办法同时工作的!
      

  5.   

    你这就有点偏激了,怎么可能所有的类调用都用接口来实现呢。举个例子吧,我现在在做简历解析,因为每种简历解析都是不一样的,因此我最开始编程是用if else来判断,51job,中华人才,前程无忧,word,没个解析都是一个函数。后来为了简单起见,没个都单独放到一个类中,再后来,封装了一个接口,接口仅仅定义了函数analyisResume,在展现控制层,仅仅通过[接口] i = [接口].getInstanse();然后调用i.analyisResume();,在展现控制层,你仅仅会看到调用,但是实现无需你来操作。这样做的好处是,无论什么时候,你的展现控制层都无需修改,如果有变动,只要改相关类即可,工厂模式无非也是类似,这是我目前做的一个场景,你也可以体会一下。其实,接口编程常用的场景是:一类处理,多个实现。不是有处理就要用接口,反而伪形式主义了