如何写更少的 if else
首先声明,不是要消除if
而是,减少一些不必要的if判断,使得代码更优雅,更重要的是提高可维护性
most easy
use Ternary:
var result = condiction? trueResult : falseResult;
缺点:case 超过2个就不容易了
use switch
in static type language
- use heritance
usage (c++):
SonClasss son = new FatherClass()
son.doSomething()
in Son class
protected void doSomething(){
//here override the FatherClass implement
print("I did something different from my father");
}
- use polypeptide
in dynamic type language
also: you can use heritance way in class:
//es5
function Son(){};
util.inherits(Son, Father);
Son.prototype.doSomething(){
console.log("I did something different from my father");
}
//usage:
var son = new Son();
son.doSomething();
//es6 use extends
//
in dynamic lange, your choice become something different and sometimes difficult
- use array
//usage:
//req.query = {"name":"Wade", "surname": "Deng"}
SonClass son = new ClassFactory(req.query.name);
son.doSomething();
//ClassFactory implement , if else hidden in ClassFactory
function ClassFactory(name){
this.name = name;
this.subClass = name == "Wade" ? new subClass(name) : new sub2Class(name);
}
- use key-value json
SonClass.prototype.doSomething(actionName){
var do = {
'cry' :{ console.log('cry');}
'eat' :{ console.log('eat');}
}
return do(actionName);
}
However , sometime reading a few if else statements is easy.
ref
[anti-if-else-patterns](http://www.techug.com/anti-if-the-missing-patterns)
no more ifs alternatives
anti-anti-if
如何写更少的 if else的更多相关文章
- redux-amrc:用更少的代码发起异步 action
很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...
- 编写更少bug的程序的六条准则
如何编写更少bug的程序? 尽可能避免常见的程序错误. 沟通设计先行 + 编写可复用代码 + 做得更多 + 做的更少 + 创造“编程心流”+ 严格的程序测试 ...
- Powerful Sleep(神奇的睡眠-睡眠生物钟的秘密:如何睡得更少却睡得更好)阅读笔记
睡眠机制 我们活着的时候,大脑会产生脑电波.脑电图仪器通过贴在人头上的一些电极读出脑电波的活动,然后把活动用图表显示出来. 睡眠过程可以分为5个过程,划分依据与大脑发出的脑电波类型. 当人清醒时,大脑 ...
- 引擎渲染速度测试--我js代码写得少你不要骗我
上一张图,很多人都看过的 地址:http://aui.github.io/artTemplate/test/test-speed.html 这个地址是在看artTemplate的时候看到的,很早都看过 ...
- Quality Over Quantity: 更少一些,更好一些_第1页_福布斯中文网
Quality Over Quantity: 更少一些,更好一些_第1页_福布斯中文网 Quality Over Quantity: 更少一些,更好一些 2013年04月09日 ...
- 如何让手游更省带宽,耗电量更少?TBR渲染架构解析!
如何让手游更省带宽,耗电量更少?渲染或是其中一个可突破的点.本文中,腾讯游戏学院专家Hailong将从为大家解析TBR渲染架构的特点. 什么是TBR? 全称是Tile Based Rendering, ...
- .NET 事件总线,简化项目、类库、线程、服务等之间的通信,代码更少,质量更好。
Jaina .NET 事件总线,简化项目.类库.线程.服务等之间的通信,代码更少,质量更好. 安装 Package Manager Install-Package Jaina .NET CLI do ...
- Python代码这样写更优雅(转)
1.变量交换 大部分编程语言中交换两个变量的值时,不得不引入一个临时变量: >>> a = 1>>> b = 2>>> tmp = a>&g ...
- 五年Java经验,面试还是说不出日志该怎么写更好?——日志规范与最佳实践篇
本文是一个系列,欢迎关注 查看上一篇文章可以扫描文章下方的二维码,点击往期回顾-日志系列即可查看所有相关文章 概览 上一篇我们讨论了为什么要使用日志框架,这次我们深入问题的根源,为什么我们需要日志? ...
随机推荐
- j2ee第五周
一.AJAX技术 AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.它有机地包含了以下几种 ...
- Python之OS内置模块
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curd ...
- 获取当前TestStep发送的request信息
在当前test step的Script Assertion里添加 // Get request url def requestURL = messageExchange.getEndpoint() / ...
- Spring 基础知识(一)基本概念 DI、IOC、AOP
DI(依赖注入) 和IOC(控制反转)都是一种设计思想,要理解他们,让我们从coding中的一些痛点入手. 依赖注入 Dependency Injection : 如果A类要使用B类的一个方法,首先必 ...
- ATOM:亮瞎程序员双眼的编辑器插件横空出世
Atom 编辑器有一个叫 activate-power-mode,啥玩意?看下面的动图吧,非常有 Power ,有木有!!!自带眩晕特技,有木有!
- vue 控制视图
<!--第一种:点击改变容器的值--> <li> <a href="javascript:void(0)" @click="state.bo ...
- 【原创】使用开源libimobiledevice盗取iphone信息
一.概述 libimobiledevice可以理解为Linux系统下的iTunes,破解了iTunes的通信协议. 依赖:https://github.com/libimobiledevic ...
- c++ — 运算符重载与strcmp自实现
#include <iostream> #include <string.h> #include <stdlib.h> using namespace std; c ...
- VB Mouse Pointer
- 洛谷 P1047 校门外的树
#include<iostream> #include<vector> #include<algorithm> using namespace std; ]; in ...