总是回头看自己写过的代码,寻找可以改进和简化的地方。
if总有else if和else,可以涵盖所有的情况,避免遗漏
if (...) {
if (...) {
...
} else {
...
}
} else if (...) {
...
} else {
...
}
真正的模块化不是文本意义的,而是逻辑意义的。一个模块应该有良好的输入和输出。
避免写太长的函数
制作小的工具函数
每个函数只做一件简单的事
//修改前
void foo() {
if (getOS().equals("MacOS")) {
a();
} else {
b();
}
c();
if (getOS().equals("MacOS")) {
d();
} else {
e();
}
}
//修改后 分成两个函数
void fooMacOS() {
a();
c();
d();
}
void fooOther() {
b();
c();
e();
}
如果你发现两件事情大部分内容相同,只有少数不同,多半时候你可以把相同的部分提取出去,做成一个辅助函数。
void foo() {
a();
b()
c();
if (getOS().equals("MacOS")) {
d();
} else {
e();
}
}
//把a b c提取出来
void preFoo() {
a();
b()
c();