ios設(shè)計模式

編程就像一門藝術(shù)菜皂;

一段漂亮的代碼贞绵,不僅要簡潔易讀,而且可以被反復(fù)利用恍飘;

設(shè)計模式就是一套唄反復(fù)使用榨崩、多數(shù)人知曉的谴垫、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的

總結(jié)蜡饵。使用設(shè)計模式是為了可重用代碼弹渔、讓代碼更容易被他人理解、保證代碼可靠性溯祸。

毫無疑問肢专,設(shè)計模式于己于他人于系統(tǒng)都是多贏的;設(shè)計模式使代碼編制真正工程化焦辅;

設(shè)計模式是軟件工程的基石脈絡(luò)博杖,如同大廈的結(jié)構(gòu)一樣。

1.設(shè)計模式的原則

① 開閉原則

原理:模塊應(yīng)對擴(kuò)展開發(fā)筷登,而對修改關(guān)閉剃根;

模塊的行為是可以擴(kuò)展的,當(dāng)應(yīng)用的需求改變是前方,我們可以對模塊進(jìn)行擴(kuò)展狈醉,是其

具有滿足那些改變的新行為,即我們可以改變模塊的功能惠险;

對模塊行為進(jìn)行擴(kuò)展時苗傅,不必改動模塊的源代碼。

② 里氏代換原則(LSP)

原理:任何基類可以出現(xiàn)的地方班巩,子類一定可以出現(xiàn)渣慕;

LSP是繼承復(fù)用的基石,只有當(dāng)衍生類可以替換掉基類抱慌,軟件單位的功能不受到影響

時逊桦,基類才能真正被復(fù)用,而衍生類也能夠在基類的基礎(chǔ)上增加新的行為抑进。

③ 接口隔離原則:

原理:客戶端不應(yīng)該依賴他不需要的接口强经,一個類對另一個類的依賴應(yīng)該建立在最小

的接口上。

一個接口代表一個角色寺渗,不應(yīng)當(dāng)將不同的角色都交給一個接口夕凝,沒有關(guān)系的接口合并

在一起,形成了一個臃腫的大街口户秤,這是對角色和接口的污染。

④ 依賴倒轉(zhuǎn)原則:

原理:程序要依賴于抽象接口逮矛,不要依賴于具體實現(xiàn)鸡号;

高層次的模塊不應(yīng)該依賴于低層次的模塊,他們都應(yīng)該依賴于抽象须鼎;

抽象不應(yīng)該依賴于具體鲸伴,具體應(yīng)該依賴于抽象府蔗;

⑤ 合成/聚合復(fù)用原則:

合成/聚合復(fù)用原則就是在一個新的對象里面使用一些已有的對象,使之成為新的對象汞窗,

新的對象通過向這些對象的委派達(dá)到復(fù)用已有功能的目的姓赤。

他的設(shè)計原則是:盡量使用合成/聚合,盡量不要使用繼承仲吏。

⑥ 最少知識原則:(迪米特法則)

原理:一個對象應(yīng)當(dāng)對其他對象有盡少可能的了解不铆,不和陌生人說話;

2.設(shè)計模式的分類:

設(shè)計模式共23中裹唆,共分為九種類型誓斥。

① 創(chuàng)造型模式:

單例模式、抽象工廠模式许帐、生成器模式劳坑、工廠模式、原型模式成畦;

② 接口適配

適配器模式距芬、橋接模式、外觀模式循帐;

③ 對象去耦

中介者模式框仔、觀察者模式;

④ 抽象集合

組合模式惧浴、迭代器模式存和;

⑤ 行為擴(kuò)展

訪問者模式、裝飾模式衷旅、責(zé)任鏈模式捐腿;

⑥ 算法封裝

模板方法、策略模式柿顶、命令模式茄袖;

⑦ 性能與對象訪問

享元模式、代理模式嘁锯;

⑧ 對象狀態(tài)模式

備忘錄模式

③ 其他兩種:

解釋器模式宪祥、狀態(tài)模式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末家乘,一起剝皮案震驚了整個濱河市蝗羊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌仁锯,老刑警劉巖耀找,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異业崖,居然都是意外死亡野芒,警方通過查閱死者的電腦和手機(jī)蓄愁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狞悲,“玉大人撮抓,你說我怎么就攤上這事∫》妫” “怎么了丹拯?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵乱投,是天一觀的道長咽笼。 經(jīng)常有香客問我,道長戚炫,這世上最難降的妖魔是什么剑刑? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮双肤,結(jié)果婚禮上施掏,老公的妹妹穿的比我還像新娘。我一直安慰自己茅糜,他們只是感情好七芭,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蔑赘,像睡著了一般狸驳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缩赛,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天耙箍,我揣著相機(jī)與錄音,去河邊找鬼酥馍。 笑死辩昆,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的旨袒。 我是一名探鬼主播汁针,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼砚尽!你這毒婦竟也來了施无?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤必孤,失蹤者是張志新(化名)和其女友劉穎猾骡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡卓练,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了购啄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片襟企。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖狮含,靈堂內(nèi)的尸體忽然破棺而出顽悼,到底是詐尸還是另有隱情,我是刑警寧澤几迄,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布蔚龙,位于F島的核電站,受9級特大地震影響映胁,放射性物質(zhì)發(fā)生泄漏木羹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一解孙、第九天 我趴在偏房一處隱蔽的房頂上張望坑填。 院中可真熱鬧,春花似錦弛姜、人聲如沸脐瑰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苍在。三九已至,卻和暖如春荠商,著一層夾襖步出監(jiān)牢的瞬間寂恬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工结啼, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留掠剑,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓郊愧,卻偏偏與公主長得像朴译,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子属铁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

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

  • 小白程序員只能看懂源代碼眠寿,而大神程序員能看懂文檔。 設(shè)計模式:為解決特定場景的問題而定制的解決方案焦蘑。設(shè)計原則:構(gòu)建...
    印林泉閱讀 862評論 0 8
  • 序言 本來是打算寫一個系列的文章的盯拱,結(jié)果名字沒起好,就變成這樣了。設(shè)計模式和寫文章一樣并沒有什么特別的地方狡逢,只是思...
    Fun箱Dao柜閱讀 2,386評論 1 52
  • 設(shè)計模式匯總 一宁舰、基礎(chǔ)知識 1. 設(shè)計模式概述 定義:設(shè)計模式(Design Pattern)是一套被反復(fù)使用、多...
    MinoyJet閱讀 3,944評論 1 15
  • 設(shè)計模式基本原則 開放-封閉原則(OCP)奢浑,是說軟件實體(類蛮艰、模塊、函數(shù)等等)應(yīng)該可以拓展雀彼,但是不可修改壤蚜。開-閉原...
    西山薄涼閱讀 3,797評論 3 14
  • “元素所庇護(hù)的伊布啊,解開變幻莫測的奧秘徊哑,我以銀藍(lán)雪之名{融合}袜刷!”“伊布!” “雷神托爾之震怒莺丑,九天銀河之喧囂著蟹,...
    清霓五月閱讀 234評論 0 0