条件判断性能优化

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

当前场景:

用户分类注册:现有用户类型(type),1为管理员用户,2为普通用户。根据来自前台的type,针对用户类别进行注册。

代码如下:

public void userOperation(HttpServletRequest request) {
		String type = request.getParameter("type");
		if (type != null && type != "") {
			if (type == "1") {
				// 授予管理员权限
				// 赋值、数据交互等操作
			} else {
				// 只是普通用户
				// 赋值、数据交互等操作
			}
		} else {
			// 只是普通用户
			// 赋值、数据交互等操作
		}
	}

可见有一部分重复。进行判断,当type为空时,判为普通用户;当type不为空时,再次进行判断:当type为1时,判为管理员用户,否则判为普通用户。
这是站在参数的角度,单纯地根据参数的取值来进行判断,阅读者需考虑四种情况。

优化方案:

可以优化判断条件,减少代码量,提高程序效率,增强易读性。

public void userOperation(HttpServletRequest request) {
		// 只是普通用户
		// 赋值、数据交互等操作
		String type = request.getParameter("type");
		if (type != null && type != "") {
			if (type == "1") {
				// 授予管理员权限
				// 赋值、数据交互等操作
			}
		}
	}

如此,先进行统一操作(默认普通用户);当type不为空、type为1时,改判为管理员用户。

这是站在判定结果的角度,根据用户最终的判定结果来进行判断。这样,对参数type的取值进行了分类(共两类,管理员用户是一类,普通用户是另一类),相当于减少了分支的情况(阅读者只需考虑两种情况),易读性强。

程序是写给人看的,也是写给机器看的,但归根结底是要给人看的,因为机器必然能看懂。在讲究团队开发的时代,别人能看懂是非常重要的。

转载于:https://my.oschina.net/zhcnlyh/blog/816470

你可能感兴趣的:(条件判断性能优化)