Java工场模式+反射写出通用代码

举报
北山啦 发表于 2021/05/26 00:20:29 2021/05/26
【摘要】 现在假设有一个晚会,规定了节目样式和节目顺序。下面写一段简单的代码: @Testpublic void demo1(){ System.out.println("晚会现在开始"); //周杰伦唱歌 new Jielun().sing(); //刘谦表演魔术 new Liuqian().magic(); //迈克尔杰克逊跳舞 new Michael().dance()...

现在假设有一个晚会,规定了节目样式和节目顺序。下面写一段简单的代码:


  
   
    
     
    
    
     
      @Test
     
    
   
    
     
    
    
     
      public void demo1(){
     
    
   
    
     
    
    
     
       System.out.println("晚会现在开始");
     
    
   
    
     
    
    
      
     
    
   
    
     
    
    
      //周杰伦唱歌
     
    
   
    
     
    
    
      new Jielun().sing(); 
     
    
   
    
     
    
    
      
     
    
   
    
     
    
    
      //刘谦表演魔术
     
    
   
    
     
    
    
      new Liuqian().magic();
     
    
   
    
     
    
    
      
     
    
   
    
     
    
    
      //迈克尔杰克逊跳舞
     
    
   
    
     
    
    
      new Michael().dance();
     
    
   
    
     
    
    
      
     
    
   
    
     
    
    
     
       System.out.println("晚会结束");
     
    
   
    
     
    
    
     
      }
     
    
  
 

这是用Java代码模拟的一场晚会,顺序就是唱歌、表演魔术、跳舞。

突然,周杰伦不能来了,这个时候就要改一个歌手。怎么改呢,就直接改就好了。


  
   
    
     
    
    
     
      //new Jielun().sing();
     
    
   
    
     
    
    
     
      //周杰伦不能来了,由陈奕迅来给大家演唱
     
    
   
    
     
    
    
     
      new Eason().sing();
     
    
  
 

换来换去都还是歌手。这个时候我们就可以抽象出一个接口Singer


  
   
    
     
    
    
     
      /**
     
    
   
    
     
    
    
     
      * 歌手的接口,每个歌手都应实现这个接口
     
    
   
    
     
    
    
     
      */
     
    
   
    
     
    
    
     
      interface Singer(){
     
    
   
    
     
    
    
      void sing();
     
    
   
    
     
    
    
     
      }
     
    
  
 

其它的也可以抽出接口


  
   
    
     
    
    
     
      /**
     
    
   
    
     
    
    
     
      * 魔术师的接口
     
    
   
    
     
    
    
     
      */
     
    
   
    
     
    
    
     
      interface Magician{
     
    
   
    
     
    
    
      void magic();
     
    
   
    
     
    
    
     
      }
     
    
   
    
     
    
    
      
     
    
   
    
     
    
    
     
      /**
     
    
   
    
     
    
    
     
      * 跳舞的人的接口(不知道叫啥)
     
    
   
    
     
    
    
     
      */
     
    
   
    
     
    
    
     
      interface Dancer{
     
    
   
    
     
    
    
      void dance();
     
    
   
    
     
    
    
     
      }
     
    
  
 

文章来源: zacksock.blog.csdn.net,作者:ZackSock,版权归原作者所有,如需转载,请联系作者。

原文链接:zacksock.blog.csdn.net/article/details/97367546

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。