看書筆記6-10

六:理解對“屬性”這一概念

可以用@property語法來定義對象中的所封裝的數(shù)據(jù)
通過"特質(zhì)"來制定存儲數(shù)據(jù)所需的正確語義
在設(shè)置屬性所對應(yīng)的實例變量時,一定要遵從該屬性所聲明的語義。
開發(fā)iOS程序時應(yīng)該使用nonatomic屬性,因為atmoic屬性會嚴(yán)重影響性能

七:在對象內(nèi)部盡量直接訪問實例變量

在對象內(nèi)部讀取數(shù)據(jù)時,應(yīng)該直接通過實例變量來讀,而寫入數(shù)據(jù)時,則應(yīng)通過屬性來寫。
在初始化方法及dealloc方法中,總是應(yīng)該直接通過實例變量來讀寫數(shù)據(jù)
有時會使用惰性初始化技術(shù)配置某份數(shù)據(jù),這種情況下,需要用過屬性來讀取數(shù)據(jù)。

八:理解"對象等同性"這一概念

若想檢測對象的等同性,請?zhí)峁?isEqual:"和"hash"方法
相同的對象必須具有相同的哈希碼,但是兩個哈希碼相同的對象卻未必相同。
不要盲目地逐個檢測每條屬性,而是應(yīng)該依照具體需求來制定檢測方案
編寫hash方法時,應(yīng)該使用計算速度快而且哈希碼碰撞幾率低的算法

九:以"類族模式"隱藏實現(xiàn)細(xì)節(jié)

類族模式可以把實現(xiàn)細(xì)節(jié)隱藏在一套簡單的公共接口后面
系統(tǒng)框架中經(jīng)常使用類族
從類族的公共抽象基類中繼承子類時要當(dāng)心,若有開發(fā)文檔,則應(yīng)首先閱讀

10:在既有類中使用關(guān)聯(lián)對象存放自定義數(shù)據(jù)

可以通過"關(guān)聯(lián)對象"機(jī)制來把兩個對象連起來
定義關(guān)聯(lián)對象時可指定內(nèi)存管理語義,用以模仿定義屬性時所采用的“擁有關(guān)系”與非擁有關(guān)系"
只有在其他做法不可行時才應(yīng)選用關(guān)聯(lián)對象,因為這種做法通常會引入難于查找的bug。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,306評論 6 13
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,757評論 11 349
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,625評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 三年前,杜老頭老婆死的那天下午,他扛著鋤頭下地干活,看到地里的鄰居,圓溜溜的眼睛轉(zhuǎn)起來,對鄰居說:嘿,大弟,知道嗎...
    喜樂派小六閱讀 321評論 0 0

友情鏈接更多精彩內(nèi)容