自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Cocoa 編碼指南 代碼命名基礎(chǔ)

移動開發(fā) iOS
在面向?qū)ο筌浖斓脑O(shè)計過程中,開發(fā)人員經(jīng)常忽視對類、方法、函數(shù)、常量以及其他編程接元素的命名。本節(jié)討論大多數(shù)Cocoa接口通用的幾條命名約定。

本節(jié)主題包括Cocoa命名約定以及我們提倡的框架編程實踐。使用公共API開發(fā)Cocoa框架、插件及其他可執(zhí)行文件需要使用的方法和約定不同于應(yīng)用程序開發(fā)。如果產(chǎn)品主要客戶是開發(fā)人員,則保證產(chǎn)品的編程接口清晰明確,不至于讓開發(fā)者產(chǎn)生疑惑十分重要。

這種情況下,API命名約定就可以派上用場,它可以幫助您保持編程接口一致明確。另外,框架開發(fā)領(lǐng)域也存在一些特定的編程技術(shù)—或者說,這些技術(shù)對框架開發(fā)更加重要—例如版本管理,二進制兼容性,錯誤處理以及內(nèi)存管理等。

在面向?qū)ο筌浖斓脑O(shè)計過程中,開發(fā)人員經(jīng)常忽視對類、方法、函數(shù)、常量以及其他編程接元素的命名。本節(jié)討論大多數(shù)Cocoa接口通用的幾條命名約定。

一般性原則清晰

***是既清晰又盡可能地簡短,但不要為了追求簡短而喪失清晰性:

  1. insertObject:atIndex:好的命名  
  2. insert:at:不清晰;插入什么?“at”表示什么?   
  3. removeObjectAtIndex:好的命名  
  4. removeObject:這樣命名也不錯,因為方法將移除通過參數(shù)引用的對象。  
  5. remove:不清晰:要移除什么? 

通常情況下,請不要縮寫事物的名稱,即使名稱很長,也應(yīng)該把它完全拼寫出來。

  1. destinationSelection:好的命名  
  2. destSel:不清晰  
  3. setBackgroundColor:好的命名  
  4. setBkgdColor:不清晰 

您可能覺得某個縮寫眾所周知,但實際可能并非如此。特別是具有不同文化和語言背景的開發(fā)人員,在遇到您提供的方法或函數(shù)的名稱縮寫時,他們可能不明白其中的含義。

不過,有一些縮寫確實很常見并且有很長的使用歷史。因此,您可以繼續(xù)使用。請參看“可以接受的縮略名稱”一節(jié)以了解更多的信息。

要防止API的名稱出現(xiàn)歧義。這里的歧義是指名稱具有多種解釋方式。

sendPort:該方法是把端口發(fā)送出去還是返回發(fā)送端口呢?
 
displayName:該方法是顯示某個名稱還是返回用戶界面中接收者的標題呢?
 
一致性

請盡可能在Cocoa編程接口中保持名稱一致性。如果不太有把握做到這一點,則請瀏覽一下頭文件和參考文檔中的范例。

如果類方法利用多態(tài),一致性就顯得尤其重要。因為在這種情況下,不同類用于完成同樣事件的方法必須具有相同的名稱。

  1. (int)tag:該方法同時定義在 NSView、 NSCell、 NSControl這三個類里面。  
  2. (void)setStringValue:(NSString *):該方法定義于數(shù)個Cocoa類中 

您可以參看 “方法參數(shù)”一節(jié)。

不能自我指涉

名稱不應(yīng)該自我指涉。

NSString:可以使用
 
NSStringObject:該名稱自我指涉

掩碼的常量(可以使用位操作進行組合)不適用這條規(guī)則,作為通告的常量也不適用。

  1. NSUnderlineByWordMask  
  2. NSTableViewColumnDidMoveNotification 

前綴

前綴是編程接口名稱的重要部分,它們可以區(qū)分軟件的功能范疇。通常情況下,提供編程接口的軟件會被打包成框架(Foundation框架以及 Application Kit框架就是如此)或者是和框架緊密相關(guān)的產(chǎn)品,我們可以利用前綴來區(qū)分框架的功能范疇。另外,前綴可以防止第三方開發(fā)者定義的符號和蘋果公司定義的符號發(fā)生沖突(以及防止蘋果公司不同框架之間的符號發(fā)生沖突)。

前綴有規(guī)定的格式。它需要由兩個或者三個大寫字符組成,而且不能使用下劃線或者“子前綴”。下面是一些例子:

  1. 前綴Cocoa的框架  
  2. NS Foundation框架  
  3. NS Application Kit框架  
  4. AB Address Book框架  
  5. IB Interface Builder框架 

在為類,協(xié)議,函數(shù),常量以及通過typedef定義的結(jié)構(gòu)命名時,請使用前綴。但在命名方法時,請不要使用前綴,因為方法已經(jīng)存在于其定義類所創(chuàng)建的名稱空間中。同理,在定義結(jié)構(gòu)的字段時,也不要使用前綴。

書寫約定

為API元素命名的時候, 請遵循下面這幾條簡單的書寫約定:

對于含有多個單詞的名稱,請不要使用標點符號標志和分割符(下劃線,破折號之類);而是要大寫每個單詞的首字符并且把這些單詞連續(xù)地拼寫在一起。然而如下這些限定條件您也需要注意:

方法的名稱要以一個小寫字符開頭,而名稱中單詞的首字符應(yīng)該大寫。另外,請不要在方法的名稱中使用前綴。

  1. fileExistsAtPath:isDirectory:  

如果方法名稱的開頭是某個眾所周知的縮略語,則該原則就不適用。例如TIFFRepresentation (NSImage),該名稱就不遵循該原則。

函數(shù)或常量名稱使用其關(guān)聯(lián)類的前綴,并且要名稱中單詞的首字符要大寫。

  1. NSRunAlertPanel   
  2. NSCellDisabled  

請不要使用下劃線作為前綴來表示私有的屬性,尤其是不要在類方法中使用。因為蘋果公司保留使用這種方式,如果第三方再使用,就有可能會導(dǎo)致名稱空間沖突。他們有可能在無意中用自己的方法覆蓋了一個已經(jīng)存在的私有方法,這樣做將會帶來災(zāi)難性的后果。請參看“私有方法”一節(jié)。您可以了解到我們提倡的可供私有API使用的約定。

類和協(xié)議的名稱

類的名稱應(yīng)包含一個名詞,這個名詞明確地指示這個類(或者類對象)表示什么或者要做什么。此外,類名稱還應(yīng)該包含適當?shù)那熬Y。(請參考“前綴”一節(jié))。Foundation框架以及Application Kit框架就有很多這樣的例子,例如NSString, NSDate,NSScanner,NSApplication,NSButton, 以及NSEvent。

我們應(yīng)根據(jù)協(xié)議對方法的分組方式來為其命名:

大部分協(xié)議會把一些彼此相關(guān)但又不合類關(guān)聯(lián)的方法歸結(jié)在一起,形成一個特殊的方法集合。這種協(xié)議要合理地命名,不要將其和類名混淆。一種常見的約定是使用動名詞格式(“...ing”):

  1. NSLocking:好  
  2. NSLock:差(看起來像是個類名) 

有一些協(xié)議會把一些彼此無關(guān)的方法歸結(jié)在一起(不是創(chuàng)建幾個獨立的小協(xié)議)。對于這樣的協(xié)議,我們傾向于把它和一個類聯(lián)系起來,利用類來作為協(xié)議的主要表現(xiàn)。并且,我們約定讓此種協(xié)議使用和類一樣的名稱。

NSObject協(xié)議就是這種情況。它把一些不相關(guān)的方法組合在一起,這些方法有的用于查詢?nèi)魏螌ο笤陬悓哟沃械奈恢?,有的可以調(diào)用對象的特定方法,有的可以用來增加或者減少對象的引用計數(shù)。由于NSObject類提供了這些方法的主要表現(xiàn),所以我們使用類名作為協(xié)議名稱。

頭文件

頭文件的命名方式很重要,因為通過使用合理的命名約定,您利用文件名稱來指示文件中包含的內(nèi)容:

聲明一個獨立的類或協(xié)議。.如果一個類或協(xié)議不屬于某個群,則請將其聲明放置在一份獨立的文件,并使用其名稱作為文件名。

  1. 頭文件:NSApplication.h  
  2. 聲明:NSApplication類  

聲明相關(guān)聯(lián)的類或者協(xié)議:如果一群聲明(類,類別以及協(xié)議)彼此相關(guān),則請將它們放在一份文件,并使用主要的類或者協(xié)議名稱作為文件名。

  1. 頭文件:NSString.h  
  2. 聲明:NSString 和 NSMutableString這兩個類  
  1. 頭文件:NSLock.h  
  2. 聲明:NSLocking協(xié)議以及 NSLock, NSConditionLock,和 NSRecursiveLock這幾個類 

包含框架頭文件。每個框架都應(yīng)該包含一份頭文件,它的名稱和框架名相同,而內(nèi)容則包含了框架的全部公共頭文件。

  1. 頭文件:Foundation.h  
  2. 框架:Foundation框架 

為另一個框架里的某個類添加API。如果您在一個框架中聲明一些方法,而這些方法屬于另一個框架中某個類的范疇類,則請在原始類的名稱后加上“Additions”,然后將其作為頭文件的名稱。例如Application Kit框架中的NSBundleAdditions.h頭文件就是這種處理方式。

相關(guān)聯(lián)的函數(shù)和數(shù)據(jù)類型。如果一群函數(shù),常量,結(jié)構(gòu)以及其他數(shù)據(jù)類型彼此相互關(guān)聯(lián),則請將它們放入到合理命名的頭文件,例如NSGaphics.h(位于Application Kit)。

小結(jié):關(guān)于Cocoa 編碼指南 代碼命名基礎(chǔ)的內(nèi)容介紹完了,希望本文對你有所幫助!關(guān)于Cocoa 編碼指南的更多內(nèi)容,請參考以下幾篇文章。

Cocoa 編碼指南 代碼命名基礎(chǔ): http://mobile.51cto.com/iphone-274085.htm
Cocoa 編碼指南 為函數(shù)命名:  http://www.scjtxx.cn/php/viewart.php?artID=274108
Cocoa 編碼指南 為方法命名: http://www.scjtxx.cn/php/viewart.php?artID=274104
Cocoa 編碼指南 為實例變量和數(shù)據(jù)類型命名:http://www.scjtxx.cn/php/viewart.php?artID=274094
Cocoa 編碼指南 框架開發(fā)者使用技巧和技術(shù)http://www.scjtxx.cn/php/viewart.php?artID=274094

責任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-07 10:29:35

Cocoa 方法 框架

2011-07-07 10:39:07

Cocoa 函數(shù)

2011-07-07 10:18:58

Cocoa 實例變量 數(shù)據(jù)

2011-07-07 10:50:09

Cocoa 框架

2011-06-17 16:23:49

Cocoa蘋果

2011-07-07 13:30:32

Cocoa Core

2011-07-07 14:22:27

Cocoa 對象 生命周期

2011-06-17 15:57:46

CocoaXcode蘋果

2011-06-15 17:02:02

CocoaiOS

2011-08-02 13:58:18

Cocoa 框架 Mac OS

2011-07-22 15:50:06

Cocoa MVC 視圖

2011-07-07 14:46:10

Cocoa Xcode

2011-07-07 14:10:21

Cocoa 內(nèi)省 hash

2011-05-11 17:48:31

CocoaiOS

2011-07-26 10:42:00

Cocoa Cocoa2d 游戲

2011-06-17 15:38:15

Cocoa蘋果

2011-05-31 15:41:00

Cocoa TouchCocoaiOS

2023-11-22 08:00:56

Go命名規(guī)范

2011-08-11 15:46:55

CocoaCocoa Touch框架

2011-08-10 19:33:09

Cocoa對象
點贊
收藏

51CTO技術(shù)棧公眾號