美文网首页
代码优雅写法之多态

代码优雅写法之多态

作者: 佛系羊驼 | 来源:发表于2019-08-07 21:17 被阅读0次
timg.jpg

扯淡

好的代码 更多的也是为了后期维护,哪怕后期不需要你来维护 ,清晰干爽的代码也会为作者留下好的印象
并且 在工作团队中 可以施加影响力

用多态 消灭 if else switch

业务场景

小学一年级有 语文 数学 英语老师上课, 目前课程表还没出来 需要将上课功能实现
程序语言 Java语言

代码实现 之 瀑布流


      该方法提供了三位老师的教学任务,
      实际业务场景会比这个复杂的多   
      ------------------------------------------------------------
      这样的写法有点体现不出作者的水平,
      当业务块多时 一个方法太大,有些偏激(装B)的工程师成之为  一坨

      用多态的方式写 可读性好 代码水平高(个人认为)~~ 
       
      public void teach(String course){

            if("Chinese".equals(course)){
                   Teacher teacher=new Teacher(.....);
                   teacher.teach("我爱北京天安门");
  
             }
             
            if("Math".equals(course)){
                   Teacher teacher=new Teacher(.....);
                   teacher.teach("5+2+1=?");
              }

            if("English".equals(course)){
                   Teacher teacher=new Teacher(.....);
                   teacher.teach("what is your name?");
             }             
      }        

代码实现 之 多态

  1. 业务多态------>教学任务
            教师类接口 将用于实际教学过程中的控制教什么内容
             
            public Interface Teacher{
                  public void teach();
             }
            
           语文教师 实现接口
            public class ChineseTeacher implements Teacher{
                       public void teach(){
                         System.out.printf("鄙人教语文 我爱北京天安门");
                        }
            }
            
             数学教师 实现接口
            public class MathTeacher implements Teacher{
                       public void teach(){
                         System.out.printf("鄙人教数学 万物皆数  1+1=?");
                        }
              }

             英文教师 实现接口
            public class EnglishTeacher implements Teacher{
                       public void teach(){
                         System.out.printf("鄙人教英文 擅长法语 what is your name?");
                        }
              }

  1. 路由规则多态 -------->执行者
           定义教师类枚举 以多态的形式
           public enum TeacherEnum{
                CHINESE_TEACHER{
                       @Override
                        public Teacher init() {
                              return  new ChineseTeacher ();
                        }
                },
                MATH_TEACHER{
                       @Override
                        public Teacher init() {
                              return  new MathTeacher ();
                        }
                },
               ENGLISH_TEACHER{
                       @Override
                        public Teacher init() {
                              return  new EnglishTeacher ();
                        }
                };

                 public abstract Teacher init();
           }
  1. 效果

           public void teach(String course){
                      assert(course);
                      TeacherEnum teacherEnum= TeacherEnum.valueof(course); 
                      teacherEnum.init().teach();
           }
          

总结

  1. 将路由规则任务 以多态的形式表达出来 确定执行者 排除掉 if else switch
  2. 将业务功能拆分 以多态的形式表达出来 执行者各司其职 主流程负责调度 业务模块执行业务

相关文章

  • 代码优雅写法之多态

    扯淡 好的代码 更多的也是为了后期维护,哪怕后期不需要你来维护 ,清晰干爽的代码也会为作者留下好的印象并且 在工作...

  • 代码优雅写法之封装

    扯淡 好的代码 更多的也是为了后期维护,哪怕后期不需要你来维护 ,清晰干爽的代码也会为作者留下好的印象并且 在工作...

  • 代码优雅写法之逆向逻辑

    扯淡 好的代码 更多的也是为了后期维护,哪怕后期不需要你来维护 ,清晰干爽的代码也会为作者留下好的印象并且 在工作...

  • 代码优化

    参考: 复杂判断的优雅写法简单几步让你的 JS 写得更漂亮优化 if-else 代码结构 一、复杂判断的优雅写法8...

  • 优雅的try...catch

    1.原有写法 2.使用vavr 引入依赖 编写测试 总结 使用此写法可以将代码更加优雅.

  • iOS-知识点积累

    iOS之代码优雅法则之 GCC

  • 代码优雅写法之主干逻辑

    扯淡 好的代码 更多的也是为了后期维护,哪怕后期不需要你来维护 ,清晰干爽的代码也会为作者留下好的印象并且 在工作...

  • js中一些【小而美】的编写优雅代码的方法

    撸码一年有余,渐渐的开始注意代码规范与代码质量,在看别人的代码中慢慢学习积累各种小而美的写法使代码优雅健壮。 三目...

  • 自学Python:一行Python代码能做什么

    Python有很多优雅有趣的代码写法,同时还很简短,那么一起来看看一行Python代码能做什么。 打印python...

  • 自学Python:一行Python代码能做什么

    Python有很多优雅有趣的代码写法,同时还很简短,那么一起来看看一行Python代码能做什么。 打印python...

网友评论

      本文标题:代码优雅写法之多态

      本文链接:https://www.haomeiwen.com/subject/cjgadctx.html