Java中一些简化代码的小技巧
对于程序员新手来说,掌握这些小技巧对于日后无论是学习中还是工作中都是有很大的帮助,废话不多说,直接上干货!
1、重复代码的抽取
//抽取前
class Example {
public void fun1(){
//code
System.out.println("重复代码");//代码重复
//code
}
public void fun2(){
//code
System.out.println("重复代码");//代码重复
//code
}
}
//抽取后
class GoodExample {
public void fun1(){
//code
fun3();
//code
}
public void fun2(){
//code
fun3();
//code
}
public void fun3(){
System.out.println("重复代码");/* 重复代码块 */
}
}
2、冗长方法分割处理
//分割前
class Example {
public void method(){
//func[1]
//func[2]
//func[3]
}
}
//分割后
class Example {
public void method(){
function1();
function2();
function3();
}
private void function1(){
//func[1]
}
private void function2(){
//func[2]
}
private void function3(){
//func[3]
}
}
3、嵌套条件分支的优化
尽量避免使用大量的嵌套if-else语句,在使用条件判断时,我们可以将不满足某些条件的情况放在方法前面,一旦满足条件就及时跳出方法,以免对后面的判断造成影响。
//优化前
class Example {
public void method(Object obj1,Object obj2){
if (obj1!= null) {
if (obj2!= null) {
//code[1]
}else {
//code[3]
}
}else {
//code[2]
}
}
}
//优化后
class Example {
public void method(Object obj1,Object obj2){
if (obj1== null) {
//code[2]
return; //满足直接退出方法
}
if (obj2== null) {
//code[3]
return; //满足直接退出方法
}
//code[1]
}
}
4、临时变量能省则省
//省略前
class Example {
public int method(){
int temp = getNum();
return temp * 100;
}
public int getNum(){
return 100;
}
}
//省略后
class Example {
public int method(){
return getNum() * 100; //就这样用,简洁明了
}
public int getNum(){
return 100;
}
}
5、过长参数列表分装成对象进行传参
//分装前
class Example {
public void method(int i,int j,int k,int l,int m,int n){
//code
}
}
//分装后
class GoodExample {
public void method(Data data){
//code
}
}
//将参数列表分装成一个类
class Data{
private int i;
private int j;
private int k;
private int l;
private int m;
private int n;
//getter&&setter
}
6、提取类或继承体系中重复使用的字符串常量
//提取前
class Example {
public void method1(){
send("操作成功!");
}
public void method2(){
send("操作成功!");
}
public void method3(){
send("操作成功!");
}
private void send(String message){
//code
}
}
//提取后
class Example {
//提取为常量字符串
protected static final String SUCCESS_MESSAGE = "操作成功!";
public void method1(){
send(SUCCESS_MESSAGE);
}
public void method2(){
send(SUCCESS_MESSAGE);
}
public void method3(){
send(SUCCESS_MESSAGE);
}
private void send(String message){
//code
}
}