麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

第3章接口與API設計52條筆記

2019-11-14 18:20:12
字體:
來源:轉載
供稿:網友

第3章 接口與API設計 52條筆記

第15條: 用前綴避免命名空間沖突

Objective-C 沒有其他語言那種內置的命名空間機制 。鑒于此,我們在起名時要設法避免潛在的命名沖突,否則很容易就重名了。如果發生命名沖突 naming clash ,那么應用程序的連接過程就胡出錯。

避免此問題的唯一做法就是變相實現命名空間:為所有名稱都加上適當的前綴。

?

第16條: 提供全能初始化方法

把這種可為對象提供必要信息以便其能完成工作的初始化方法就做 指定初始化方法 designated initialzier.

如果創建實例的方法不止一種,那么這個類就會有多個初始化方法。不過要在其中選定一個作為designated initializer ,令其他初始化方法都來調用它。

上面幾個初始化方法中,initWithTimeIntervalSinceReferenceDate:是 designated initializer.

?

第23條:通過委托與數據源協議進行對象間通信

該模式的主旨是 : 定義一套接口,某對象若想接受另一個對象的委托,則需要遵從此接口,以便成為其委托對象 delegate.而這另一個對象則可以給其委托對象回傳一些信息,也可以在發生相關事件時通知委托對象。

?

一般通過協議 這項語言特性來是實現此模式,整個Cocoa系統框架都是這么做的。

第24條: 將類的實現代碼分散到便于管理的數個分類之中

類中經常容易填滿各種方法,而這些方法的代碼則全部堆在一個巨大的實現文件中。

通過Objective-C的分類機制,把類代碼按邏輯劃入幾個分區中,這對開發與調試都有好處。

?

把個人信息建模為類。

可以用分類機制把剛才的類改寫成下面這樣:

現在,類的實現代碼按照方法分成了好幾個部分。所以說,這項語言特性當然就叫做分類 啦 。

使用分類機制之后,依然可以把整個類都定義在一個接口文件中,并將其代碼寫在一個實現文件中??墒请S著分類數量增加,當前這份實現文件很快就會膨脹。此時,可以把每個分類提取到各自的文件中去。

以EOCPerson為例,可以按照其分類分成以下幾個文件:

通過分類機制,可以把類代碼分成很多易于管理的小塊,以便單獨檢視 。使用分類機制之后,如果想用分類中的方法,那么要記得在引入EOCPerson.h時一并引入分類的頭文件。

雖然稍微有點麻煩,不過分類仍然是一種管理代碼的好方法。

第25條:總是為第三方的分類名稱加前綴。

第26條: 勿在分類中聲明屬性

屬性是封裝數據的方式。盡管從技術上說,分類也可以聲明屬性,但這種做法應該盡量避免。

關聯對象能夠解決在分類中不能合成實例變量的問題。

這樣做可行,但不太理想。要把相似的代碼寫很多遍,而且在內存管理問題上容易出錯,因為我們在為屬性實現存取方法時,經常會忘記遵從其內存管理語義。

盡管這個方法不壞,但筆者不推薦。

把屬性定義在主接口中要比定義在分類里清洗得多。

至于分類機制,則應將其理解為一種手段,目標在于擴展類的功能。

有時候只讀屬性還是可以在分類中使用的。

由于獲取方法并不訪問數據,而且屬性也不需要由實例變量來實現,所以可以像下面這樣來實現分類:

第27條: 使用class-continuation 分類 隱藏實現細節

第28條:通過協議提供匿名對象

協議定義了一系列方法,遵從此協議的對象應該實現他們。于是,我們可以用協議把自己所寫的API只中的實現細節隱藏起來,將返回的對象設計為遵從此協議的純id 類型。

在定義受委托者 delegate這個屬性時,可以這樣寫

@PRoperty (nonatomic ,weak )id <EOCDelegate>delegate;

由于該屬性的類型是id<EOCDelegate>,所以實際上任何類的對象都能充當這一屬性,即便該類不繼承自NSObject也可以,只有遵循EOCDelegat協議就行。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久激情免费视频 | 久久久久久久91 | 国产精选电影免费在线观看 | 成人精品一区二区三区中文字幕 | 毛片在线免费播放 | 国产亚洲精品影达达兔 | 精品一区二区三区在线观看视频 | 国产成人精品一区在线播放 | 成人免费看片a | 国产一级毛片av | 欧美日韩免费在线观看视频 | 伊人久操视频 | 亚洲精品成人18久久久久 | 九九精品在线播放 | 色毛片 | 草久在线观看视频 | 亚洲91网 | 日韩视频一二三 | 成人国产精品一区二区毛片在线 | 男女羞羞视频在线免费观看 | 欧美日韩亚洲成人 | 欧美日韩网站在线观看 | 狠狠99 | 午夜视频免费在线观看 | 久久精品黄 | 国内精品免费一区二区2001 | 黄色久 | 亚洲国产精品高潮呻吟久久 | 日韩视频一区二区 | 久久综合久久美利坚合众国 | 海外中文字幕在线观看 | 污视频在线免费 | 欧美一级电影网 | 国产精品自拍片 | 91一区二区在线观看 | 日本免费一区二区三区四区 | 欧美黄色片一级 | 久久精品国产99久久久古代 | 久草手机在线 | 在线播放黄色网址 | 黄色成人短视频 |