比如,在写业务代码时,常常会有多重判断,所以代码可能会是这样:
if(a){
if(a1){
if(a11){
alll
}else{
a12
}
}else{
a2
}
}else{
b
}
而这种多层嵌套,显然不是好的编程方式,有什么好的技巧 /或方法解决这个问题吗? segmentfault 传送门: https://segmentfault.com/q/1010000004888693
1
levn 2016-04-07 21:15:54 +08:00 via iPad 1
把里面的写成函数。。
|
2
ihuotui 2016-04-07 22:37:26 +08:00 1
建议看一看 重构 那本书
|
3
banricho 2016-04-08 00:43:27 +08:00 2
少用 else ,提前 return 出去呗 -。-
|
4
lightening 2016-04-08 02:02:15 +08:00 1
把那个逻辑抽象成类,用继承。
|
5
Perry 2016-04-08 02:05:21 +08:00 via iPhone
看什么语言吧,比如 Scheme 可以用 cond
|
6
msg7086 2016-04-08 03:05:15 +08:00 1
|
7
techmoe 2016-04-08 05:43:03 +08:00 1
三元表达式
|
8
ShiHou 2016-04-08 07:05:33 +08:00 1
|
9
rainysia 2016-04-08 09:29:39 +08:00
据说某俄国特工九死一生偷到了 NASA 太空火箭发射程序源代码的最后一页, 打印出来后:
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} |
10
shineMicroxy 2016-04-08 09:33:05 +08:00 1
if(!n){
return; } //do something |
11
shakoon 2016-04-08 09:33:42 +08:00 1
改用 case when
|
12
ProfFan 2016-04-08 09:34:40 +08:00 1
状态机啊
|
13
yunying 2016-04-08 09:35:13 +08:00 1
|
14
xqin 2016-04-08 11:24:25 +08:00 1
@rainysia 不应该是 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
吗? NASA 是使用的 LISP |
15
ihuotui 2016-04-11 16:24:43 +08:00 1
@ihuotui 还有 head frist 设计模式, https://book.douban.com/subject/2243615/
代码写不好,是 50%思想不对, 40%经验不足, 10%思维短路,然而前面两个都是可以学习的。第三个可以交流。 |