iOS protocol的理解

protocol 的本質(zhì)類似一個抽象類,這個聲明了一些純虛方法.并且沒有屬性,在java中,這個叫接口類,在c++中,這個叫抽象類. (在ruby中,跟它本質(zhì)不一樣,但是有點的類似,叫鴨子類型) 在編碼中,通過繼承協(xié)議,實現(xiàn)了協(xié)議中描述的這一套方法.

協(xié)議分為@require @option 兩種,@require是必須實現(xiàn)的,例如,我們繼承哺乳動物的一套功能. 呼吸,走路,進食,生育.功能中,必須實現(xiàn)呼吸和進食和生育,否則該生物將無法生存.

猜測:protocol在底層實現(xiàn)中應(yīng)該是C++的抽象類,比如有個類Class A 有一個方法 id<UITableViewDataSource> dataSource
只要ClassB 實現(xiàn)了協(xié)議(類似繼承抽象類)時候就能將instance B 賦值給dataSource了.(因為class B已經(jīng)繼承了UITableViewDataSource這個抽象類了,
Class B作為子類能賦值給基類屬性)

在iOS中,iOS使用委托這個設(shè)計方法,兩者結(jié)合.形成一個直觀的行為,Class A委托B實現(xiàn)Class A中的一些方法.這種設(shè)計使OC這一點變得非常靈活.但是,必須吐槽,如果只是單純實現(xiàn)一兩個協(xié)議,那很完美,在某些復(fù)雜的情況下,由于需要實現(xiàn)多個協(xié)議,使ViewController變得很臃腫并難以維護.

對于某些對數(shù)據(jù)依賴比較少的協(xié)議,可以從viewcongroller分離開來.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末莫杈,一起剝皮案震驚了整個濱河市术羔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宣渗,老刑警劉巖吨铸,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件行拢,死亡現(xiàn)場離奇詭異,居然都是意外死亡诞吱,警方通過查閱死者的電腦和手機舟奠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來房维,“玉大人鸭栖,你說我怎么就攤上這事∥粘玻” “怎么了晕鹊?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長暴浦。 經(jīng)常有香客問我溅话,道長,這世上最難降的妖魔是什么歌焦? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任飞几,我火速辦了婚禮,結(jié)果婚禮上独撇,老公的妹妹穿的比我還像新娘屑墨。我一直安慰自己躁锁,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布卵史。 她就那樣靜靜地躺著战转,像睡著了一般。 火紅的嫁衣襯著肌膚如雪以躯。 梳的紋絲不亂的頭發(fā)上槐秧,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機與錄音忧设,去河邊找鬼刁标。 笑死,一個胖子當(dāng)著我的面吹牛址晕,可吹牛的內(nèi)容都是我干的膀懈。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼谨垃,長吁一口氣:“原來是場噩夢啊……” “哼启搂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乘客,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤狐血,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后易核,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匈织,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年牡直,在試婚紗的時候發(fā)現(xiàn)自己被綠了缀匕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡碰逸,死狀恐怖乡小,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情饵史,我是刑警寧澤满钟,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站胳喷,受9級特大地震影響湃番,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吭露,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一吠撮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧讲竿,春花似錦泥兰、人聲如沸弄屡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膀捷。三九已至,卻和暖如春师脂,著一層夾襖步出監(jiān)牢的瞬間担孔,已是汗流浹背江锨。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工吃警, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人啄育。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓酌心,卻偏偏與公主長得像,于是被迫代替她去往敵國和親挑豌。 傳聞我的和親對象是個殘疾皇子安券,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法氓英,內(nèi)部類的語法侯勉,繼承相關(guān)的語法,異常的語法铝阐,線程的語...
    子非魚_t_閱讀 31,587評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理址貌,服務(wù)發(fā)現(xiàn),斷路器徘键,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉练对,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,682評論 0 9
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,795評論 0 11
  • 最近,諸事不順的時候總會找花花聊聊天吹害,哪怕只有一盤拍黃瓜螟凭,總會讓我心滿意足。 也許給自己定義為小人物它呀,所以對金錢螺男,...
    燕紀(jì)事閱讀 217評論 2 0