有意義的命名
一個好的有意義的命名可以提高閱讀代碼效率包括:
變量
,
函數
,
參數
,
類名
,
方法名
等,如何去給它們一個好的命名,一般遵守下面幾個命名規則,慢慢地你就會養成一個會命名的好程式員。
1.選擇展現本意的詞語
int d;
public List<int[]> getThem() {
List<int[]> list1 = new ArrayList<int[]>();
for(int[] x: theList)
if(x[0] == 4)
list1.add(x);
return list1;
}
由上述代碼可以看出4個問題:
- theList是什麼類型的東西?
- theList中零下标的元素的意義是啥?
- 數字4代表什麼意思?
- 如何使用傳回的清單?
2.避免使用專有名字以及易誤導的詞
例1:
int a = 1 ;
int b = java;
int c = Time;
if(l == O) {
a = O1;
}else {
l = 01;
}
- O和0相似,1和l相似
- java屬于專有名詞
- Time屬于Java.util包中的類
3.做有意義的區分
對變量做有意義的區分不能按照順序進行固化程式設計:
a1,a2,a3,a4等類似這種如下執行個體:
public static void copyChars(char a1[],char a2[]) {
for(int i=0;i<a1.length;i++) {
a2[i] = a1[i];
}
}
無法區分a1,a2分别代表什麼如果是source,destination就可以明顯區分了。
4.使用讀得出來的名稱
人類長于記憶和使用單詞,不要傻乎乎的制造單詞,
class DtaRcrd102 {
private Date genymdhms;
private Date modymdhms;
private final String pszqint = "102";
/* .......*/
}
class Customer {
private Date generationTimestamp;
private Date modificationTimestamp;
private final String recordId = "102";
/*...........*/
}
5.使用可搜尋的名稱
若變量和常量可能在代碼中被多次使用,應該賦以便于搜尋的名稱,名稱的長短應和作用域相對應。
6.避免不必要的成員字首
不需要用
_m
來标明成員變量
public calss Part {
private String m_des;//The textual description
void setName(String name) {
m_dec = name;
}
}
---------------------------------------------------------------
public class Part {
String description;
void setDescription {
this.description = description;
}
}
7.接口與實作
一般來書接口定義AbstractFactory那麼接口的實作為了友善可以定義為AbstractFactoryImp。
8.類名
類名和對象名應該是名詞或名詞短語,類名不應該是動詞,不以數字開頭。
9.方法名
方法名應該為動詞或是動詞短語。屬性通路詞,修改器,和斷言應該根據其值命名,加上get,set,is等等。
10.避免同一個單詞用于不同的目的
例如:三層架構中:
Dao,Service,Servlert
中
public class Dao {
void add(int args) {
/*....*/
}
}
//---------------------------------
public class Servlert {
Dao dao = new Dao();
void update/apped(int args) {
dao.add(args);
}
}
11.不要添加沒用的語境
對于Adress類的實體來說,accountAdress和customerAdress都是不錯的名稱不過用在類名就不太好了,是以添加有意義的語境相當重要。