代码重构总结

一、封装

  1. 方法的封装
public class A(){
	@AutoWired
	B b;
	b.methodB();
}

public class B(){
	public void methodB(){
		methodB1();
		methodB2();
	}
	private void methodB1(){}
	private void methodB2(){} 
}
//注意: B类中只有methodB是给外部用的,所以是public。而methodB1和methodB2都是给当前类用的,所以用private
  1. 属性的封装
private int number;
public int getNumber() {
	return number;
}
public void setNumber(int number) {
	this.number = number;
}
//第一是将修改属性的可见性来限制对属性的访问(一般限制为private);第二是要对每个值属性提供对外的公共方法访问,也就是创建'getter'和 'setter'方法(将实例变量的首字母大写,在前面添加'get'或者'set', 变成'getter'和 'setter'方法名)

二、方法提取
要先把变量抽取出来(IDEA中的refactor–>Extract–>variable), 其次在用IDEA中的refactor提取方法
如果这份方法跟业务逻辑无关,可抽取出到util类中,以便以后重用
三、参数提取
四、减少冗余

//before
if (isInRange(longitude)) {
        return true;
    } else {
        return false;
    }
//After
return isInRange(longitude);

五、写方法注释
六、配置应该放到properties文件里
用@value注入
七、减少if else嵌套, 平级化if else

if(){
	if(){
		if(){}
	}
}else{}
可根据业务逻辑适当重构成:
if(){}
if(){}
if(){}
if(!stopFileExists){
	...业务逻辑
}else{
	context.close();
	return;
}
//After
if(stopFileExists){
context.close();
	return;
}
...业务逻辑

八、类单一职责,方法的单一职责
比如一个类是把一个file转换并存到DB, 这样就不要把loader parser都放到一个类里
**九、一个方法大概保持在15-20行
十、命名 方法名一般时动词 意思表达正确 尽量简单
参考:https://www.cnblogs.com/xiandedanteng/p/12058104.html

  1. 避免过度使用get作为方法前缀 应该用更精确的动词描述动作,如“请求”request,“获取”acquire,“查找”search/lookfor/find,“查询”inquire,“构建”build 或“创建”create
  2. 对于变量,一般采用名词命名,如salary;如果其含义较复杂,建议采用形容词+名词的形式,如totalSalary;如果不会产生歧义,可以使用名词+名词的方式,如minerSalavry,flightNumber, carColor
  3. 对于方法,一般采用动词+名词的方式命名,如drawBullet,cleanScreen; 也可以采用省略动词的介词+名词的形式,如onMessage,onAbort,onExit.

如用于限制范围,可以在名词前加入介词,如要修饰名词,可以在名词前加入形容词,如sumZombieFansCnt。
例如:checkStopFile 不知道check什么,其实是check有没有stop file的
改成 stopfileExists

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值