1. 减少代码量,少给自己找麻烦
2. 单一抽象层次
1、一个函数/方法中所有操作处于相同逻辑层次。
2、太多不同层级的抽象,高层和底层杂合在一起,导致细节太多
3、如何判断单一层次,参考金字塔原理
Function 放大象进入冰箱(){
举起胳膊;
伸手进冰箱把手;
五个手指握紧; Function 放大象进入冰箱(){
手用例拉回一米; 打开冰箱门();
while(冰箱门<90度) 手再度拉回20厘米; ==> 推动大象();
推动大象(); 关闭冰箱门();
......; }
if(门关不上){
抬脚();
用力踹大象皮鼓();
用力关门();
}
.....
}
3. 最小化缩进 避免超过3层的嵌套
void func1(void){
if(IsWorkDay()){
print("Error, is work day"); if(IsWorkDay()){
}else{ print("Error, is work day");
if(IsWorkTime()){ return;
print("Error, is wirk day"); ==> }
}else{ if(){
businessdealwith(); print("Error, is work time");
} return;
} }
}
4. 清晰表达式
if( fasle == req->getDestAddress().IsUseFulAddr() ){
......
}
||
/
if( CouSTOME_ROUTE() ){
return .....
}
5. 善用辅助类拆分 类太大或封装类容太多
职责多的类就像职责多的领导,领导需要秘书和助理,因为能帮领导从琐事中借方出来。巨型类也一样,
需要辅助类把与主业务逻辑无关的事移除出去。
不产生数据的函数,不修改数据的函数,或输入就有明确输出的函数,不和外部对象交互的函数。