1.不要把業務邏輯和非業務邏輯混合
多思考一下,儘量不要有錯誤的邏輯,和漏掉的情形
常見的邏輯:
(1)字符串的爲空判斷
if(s == null || s.length() <= 0);
如果 String 類型爲null, 而去進行 equals(String) 或 length() 等操作會拋出java.lang.NullPointerException.
(2)對象是否爲空判斷
public static boolean isNullOrEmpty(Object obj) {
if (obj == null)
return true;
if (obj instanceof CharSequence)
return ((CharSequence) obj).length() == 0;
if (obj instanceof Collection)
return ((Collection) obj).isEmpty();
if (obj instanceof Map)
return ((Map) obj).isEmpty();
if (obj instanceof Object[]) {
Object[] object = (Object[]) obj;
if (object.length == 0) {
return true;
}
boolean empty = true;
for (int i = 0; i < object.length; i++) {
if (!isNullOrEmpty(object[i])) {
empty = false;
break;
}
}
return empty;
}
return false;
}
(3)時間上的判斷
閏年產生的一系列時間計算的邏輯
/**
* 判斷某年某月有多少天
*
* @param year month
* 年 月
* @return count
*/
public static int getYearMonthDaysCounts(int year,int month) {
int count = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
count =31;
break;
case 2:
count = isLeapYear(year)?29:28;
break;
default:
count = 30;
break;
}
return count;
}
等等。如果再遇到自己總結下吧。
2.非業務邏輯的代碼儘量構建成方法去複用
這樣類似的邏輯會多次出現,如果你在業務中寫了很多相似的代碼,是處理的非業務邏輯相關的,
那麼你就需要考慮下怎麼去把這一塊抽象出來然後複用。這樣代碼的層次行就很清楚了,後期維護修改的話就會很
輕鬆,你只用找到邏輯有問題的那一塊來修改,而不是大篇幅的去分析。
3.這些非邏輯的代碼通常表現爲工具類
各種utils,這裏你需要去學習很多別人寫的好的代碼
還需要你自己去寫一些去積累下來。