代码无错就万事大吉?成年人要有更高的追求

129 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情

作为初入职场的小白,在碰到业务实现时闪现到头脑的第一印象往往是是实现功能是第一位的,不怎么会去思考代码的规范性和结构设计,常常给后面的童鞋留下了无尽的痛苦和地雷。一旦遇到需求的变更和大的重构,简直痛不欲生。 那么我们应该如何去养成良好的素养,逐渐写出有呀的代码呢?设计模式可以带我们一步一步的改变

五大三粗直奔主题

             var nam1=prompt("输入第1个数字");
            var nam2=prompt("输入第2个数字");
            var ser=prompt("输入运算符");
            nam1=parseInt(nam1);
            nam2=parseInt(nam2);
            if (ser == "+") {
                result = nam1+nam2;
            } else if (ser == "-"){
                result = nam1-nam2;
            } else if (ser == "*"){
                result = nam1*nam2;
            } else if (ser == "/"){
                result = nam1/nam2;
            }
            console.log(nam1+ser+nam2+"="+result);

我们来找茬

找出上面代码的缺点:命名很土气,if判断硬编码,除法运算用户输入0或者字符符号,程序直接GG;

你有哪些优化的想法和建议呢

  • 变量名见名知意
  • if语句切换为switch语句
  • 面向对象编程思想植入,封装输入参数和操作符,实现代码复用
  • 通多多态和继承,定义运算符父类,子类分别实现不同的运算方式。
  • 解耦:简单工厂模式,将运算符操作解耦抽离出一个单独的OperationFactory类,通过一个静态方法来生成不同的操作符类,留个作业:最后的结果你能自己写出来了吗?