類案淋、方法及變量的命名是Objective-C編程的重要環(huán)節(jié)距辆。通常會(huì)覺得OC的語言很繁瑣换薄,因?yàn)槠湔Z法結(jié)構(gòu)使代碼讀起來和句子一樣。
NSString *text = @"The quick brown fox jumped over the lazy dog.";
NSString *newText = [text stringByReplacingOccurrencesOfString:@"cat" withString:@"fox"];
此段代碼看起來比較繁瑣融师,但是準(zhǔn)確的表達(dá)了開發(fā)者想做的事右钾。在命名不像OC這般復(fù)雜的語言中,類似的程序可能會(huì)這樣寫
string text = @"The quick brown fox jumped over the lazy dog.";
string newText = text.replace("cat", @"fox");
這樣寫雖然簡(jiǎn)單旱爆,但是可能會(huì)疑惑:這兩個(gè)參數(shù)是如何解讀呢舀射?是fox替換cat,還是cat替換fox怀伦;還有一個(gè)疑問:replace這個(gè)函數(shù)是把text里出現(xiàn)的所有fox都替換脆烟,還是只替換出現(xiàn)的第一個(gè)?其名稱沒有清楚地表達(dá)出這些意思房待。而OC的命名方式雖然長(zhǎng)了一點(diǎn)邢羔,但是卻非常清晰。
方法與變量名使用了“駝峰命名”桑孩,以小寫字母開頭拜鹤,其后每個(gè)單詞首字母大寫。類名也用駝峰命名發(fā)洼怔,不過其首字母需要大些署惯。
關(guān)于駝峰命名法,我推薦《禪與 Objective-C 編程藝術(shù)》
隨說使用長(zhǎng)名字可以使代碼更易讀镣隶,也應(yīng)該盡量言簡(jiǎn)意賅极谊。
NSString類展示了一套良好的命名習(xí)慣。
+string
工廠方法安岂,用于創(chuàng)建新的空字符串
+stringWithString
工廠方法轻猖,根據(jù)某字符串創(chuàng)建出與之內(nèi)容相同的新字符串。
+localizedStringWithFormat
工廠方法域那,根據(jù)特定格式創(chuàng)建出新的“本地化字符串”咙边。
等等。次员。败许。
使用方法命名時(shí),注意幾條規(guī)則:
1.如果方法的返回值是新創(chuàng)建的淑蔚,那么方法名的首個(gè)詞應(yīng)是返回值類型市殷,除非前面還有修飾語,例如localizedString刹衫。屬性的存取方法不遵循這種命名方式醋寝,因?yàn)橐话阏J(rèn)為這些方法不會(huì)創(chuàng)建新的對(duì)象搞挣,即便有時(shí)返回內(nèi)部對(duì)象的一份拷貝,我們也認(rèn)為那相當(dāng)于原有的對(duì)象音羞。
2.應(yīng)該把表示參數(shù)類型的名詞放在參數(shù)前面囱桨。
3.如果方法要在當(dāng)前對(duì)象上執(zhí)行操作,那么就應(yīng)該包含動(dòng)詞嗅绰;若執(zhí)行操作時(shí)還需要參數(shù)舍肠,就在動(dòng)詞后面加上一個(gè)或多個(gè)名詞。
4.不要使用str這種簡(jiǎn)稱
5.Boolean屬性應(yīng)該加is前綴办陷。如果某方法返回非屬性的Boolean值貌夕,那么應(yīng)該根據(jù)其功能,選用has或is前綴民镜。
6.由“輸入輸出”來保存返回值的方法用get前綴啡专。
類與協(xié)議的命名
命名方式應(yīng)該協(xié)調(diào)一致。如果從其他框架中繼承子類制圈,那么務(wù)必遵循其命名慣例们童,例如,繼承自UIView的自定義子類鲸鹦,那么累名末尾的詞必須是view
總結(jié):
1.起名時(shí)應(yīng)遵從標(biāo)準(zhǔn)的Objective-C命名規(guī)范慧库,這樣創(chuàng)建出來的接口更容易為開發(fā)者所理解。
2.方法名要言簡(jiǎn)意賅馋嗜。
3.方法名里不要使用縮略后的類型名稱齐板。
讀Effective Objective-C 2.0 有感