也谈接口编程

来源:互联网 发布:node.js调用python 编辑:程序博客网 时间:2024/05/03 07:01
 
刚刚和大峡讨论一个问题,接口编程,这个话题也许大家比我理解多了,我提出一个自己的观点:在个人程序中空接口很少,至少我见的很少!大峡:不对,空接口很多,接口只不过是一个标识,然后我们做了一个很有意思的程序:
空接口:
package springroad.demo.taginterface;
 
public interface SomeThing {}
 
人的接口:
package springroad.demo.taginterface;
 
public interface Humans extends SomeThing {}
 动物接口:
        package springroad.demo.taginterface;
 
public interface Animals extends SomeThing {}
创建一系列对象:
   中国人:
        package springroad.demo.taginterface;
 
public class Chinese implements Humans {}
   日本人:
       package springroad.demo.taginterface;
 
public class Japanese implements SomeThing {}
   狗:
      package springroad.demo.taginterface;
 
public class Dog implements Animals {}
主人:
package springroad.demo.taginterface;
 
public class Monster implements Humans {}
 ,下面建立一个猎人类:
   package springroad.demo.taginterface;
 
public class Hunter {
//智能的枪
public void intelligent(Object target)
{
       if(target instanceof Animals){
           System.out.println("打死了一个动物");
         }
       else if(target instanceof Humans)
       {
              System.out.println("这个是人类不能开枪的!");
       }else {
       System.out.println("打死一个日本人,它竟然连动物都不是,浪费了一颗子弹,唉!");}
       //下面进行闪杀等相关处理
       //销毁他
       target=null;
}
public static void main(String[] args) {
Hunter hunter=new Hunter();
SomeThing[] objects=new SomeThing[]{new Dog(),new Chinese(),new Japanese(),new Monster()};
for(int i=0;i<objects.length;i++)
       hunter.intelligent(objects[i]);
}
};
这个程序都是通过一系列的空接口来实现的,不过最后他使用一个内部类,要不new 接口就出错了,程序简单,设计颇见优雅,值得大家学习,最后输出结果是:
打死一个动物!
这个是人类不能开枪的!
打死一个日本人,它竟然连动物都不是,浪费一颗子弹,唉!
这个是人类不能开枪!
 
原创粉丝点击