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个月内不可修改。