摘要:
本文作者通過(guò)實(shí)例介紹了靈敏開(kāi)發(fā)的必要技巧:將注釋轉(zhuǎn)為代碼.
示例
這是一個(gè)會(huì)議治理系統(tǒng). 在會(huì)議中,每個(gè)參會(huì)者都會(huì)戴一個(gè)牌子,這牌子上面有這個(gè)參會(huì)者的信息(比如姓名之類的).在這個(gè)系統(tǒng)中,Badge這個(gè)類用來(lái)存放這個(gè)參會(huì)者的信息.請(qǐng)看一下下面的代碼跟注釋:
//存放參會(huì)者身上戴的牌子所顯示的信息.
public class Badge {
String pid; //參會(huì)者 ID
String engName; //英文全名
String chiName; //中文全名
String engOrgName; //所在部門英文名稱
String chiOrgName; //所在部門中文名稱
String engCountry; //部門所在國(guó)家的中文名稱
String chiCountry; //部門所在國(guó)家的英文名稱
//***********************
//構(gòu)造函數(shù).
//根據(jù)參會(huì)者的id,去數(shù)據(jù)庫(kù)取出該參與者的信息.
//***********************
Badge(String pid) {
this.pid = pid;
//***********************
//取出參會(huì)者
//***********************
ParticipantsInDB partsInDB = ParticipantsInDB.getInstance();
Participant part = partsInDB.locateParticipant(pid);
if (part != null) { //取出參會(huì)者的英文全名
engName = part.getELastName() + ", " + part.getEFirstName(); //取出參會(huì)者的中文全名
chiName = part.getCLastName()+part.getCFirstName();
//***********************
//取出所在部門跟國(guó)家.
//***********************
OrganizationsInDB orgsInDB = OrganizationsInDB.getInstance(); //取出所在部門的id
. String oid = orgsInDB.getOrganization(pid);
if (oid != null) {
Organization org = orgsInDB.locateOrganization(oid);
engOrgName = org.getEName();
chiOrgName = org.getCName();
engCountry = org.getEAddress().getCountry();
chiCountry = org.getCAddress().getCountry();
}
}
}
... }
將注釋轉(zhuǎn)換為代碼,讓代碼足夠清楚到可以表示注釋
我們先看一下第一個(gè)注釋:
//存放參會(huì)者身上戴的牌子所顯示的信息. public class Badge { ... }
我們干嘛需要這個(gè)注釋呢?因?yàn)槌绦騿T認(rèn)為"Badge"這個(gè)類名不足以讓讀代碼的人清楚這個(gè)類的作用,所以就寫了這個(gè)注釋. 那假如我們直接將注釋所表達(dá)的一些信息放在類名里面的話,就沒(méi)有單獨(dú)寫注釋的必要了.比如::
public class ParticipantInfoOnBadge { ... }
其實(shí)很多人肯定會(huì)問(wèn)?難道寫注釋不是一個(gè)好的編程習(xí)慣嗎?這問(wèn)題很好,我也想知道.在解釋之前,我們先把這個(gè)示例中所有的注釋都轉(zhuǎn)為代碼先.
將注釋轉(zhuǎn)換為變量名
Consider: public class ParticipantInfoOnBadge {
String pid; //參會(huì)者 ID
String engName; //英文全名
String chiName; //中文全名
String engOrgName; //所在部門英文名稱
String chiOrgName; //所在部門中文名稱
String engCountry; //部門所在國(guó)家的中文名稱
String chiCountry; //部門所在國(guó)家的英文名稱
... }
這里,我們就像對(duì)屬性的注釋,轉(zhuǎn)化為屬性名, 比如:
public class ParticipantInfoOnBadge {
String participantId;
String participantEngFullName;
String participantChiFullName;
String engOrgName;
String chiOrgName;
String engOrgCountry;
String chiOrgCountry;
... }
對(duì)參數(shù)的注釋,轉(zhuǎn)化為參數(shù)名
看看:
public class ParticipantInfoOnBadge {
...
//***********************
//構(gòu)造函數(shù).
//根據(jù)參會(huì)者的id,從數(shù)據(jù)庫(kù)取出該參與者的信息.
//***********************
ParticipantInfoOnBadge(String pid) {
this.pid = pid;
...
}
}
比如:
public class ParticipantInfoOnBadge {
...
//***********************
//構(gòu)造函數(shù).
//從數(shù)據(jù)庫(kù)取出該參與者的信息.
//***********************
ParticipantInfoOnBadge(String participantId) {
this.participantId = participantId;
...
}
}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注