Android設(shè)計模式-面向?qū)ο罅笤瓌t

概述

最終就是 抽象 單一直則 最小化

單一職責(zé)原則(Single Responsibility Principle)

簡述

簡稱SPR 一個類只做一件事.

并不是說一個類只有一個函數(shù),而是說這個類中的所有函數(shù)必須是高度相關(guān)的.高內(nèi)聚.

優(yōu)點(diǎn)

  • 類的復(fù)雜度降低,實(shí)現(xiàn)什么職責(zé)有明確的定義
  • 可讀性提高
  • 可維護(hù)性提高
  • 變更引起的風(fēng)險降低.一個接口的修改只影響相應(yīng)的實(shí)現(xiàn)類,對其他的接口無影響.

里氏替換原則(Liskov Substitution Principle)

簡述

面向?qū)ο笳Z言三大特征是封裝,繼承,多態(tài).

里氏替換原則簡單來說就是所有引用基類的地方必須能透明的使用其子類的對象.也就是說,只要有父類出現(xiàn)的地方子類就可以出現(xiàn),并且用這個子類替換父類也不會產(chǎn)生任何錯誤和異常,但是反過來就不行,父類不一定能替代子類.

例如構(gòu)造方法的參數(shù)是接口類型的,只要實(shí)現(xiàn)了這個接口的都可以調(diào)用這個構(gòu)造方法創(chuàng)建對象

優(yōu)點(diǎn)

  • 代碼共享減少創(chuàng)作類的工作量,因?yàn)槊總€子類都擁有父類的所有方法和屬性
  • 提高代碼重用度
  • 提高代碼可擴(kuò)展性,實(shí)現(xiàn)父類的方法就行了
  • 提高產(chǎn)品和項目的開放性

缺點(diǎn)

  • 繼承是入侵的,只要繼承就必須擁有父類的所有屬性和方法
  • 降低代碼靈活性,子類必須擁有父類的所有屬性的方法,對子類多了些約束
  • 增強(qiáng)了耦合性,當(dāng)父類的常量,變量,方法等改變時要考慮到子類的修改.搞不好大量代碼需要重構(gòu).

依賴倒置原則(Dependence inversion Principle)

簡述

  • 高層模塊不應(yīng)該依賴低層模塊,兩者都應(yīng)該依賴其抽象
  • 抽象不應(yīng)該依賴細(xì)節(jié)
  • 細(xì)節(jié)應(yīng)該依賴抽象

JAva中抽象就是指接口或抽象類,兩者都不能被實(shí)例化.實(shí)現(xiàn)或繼承他們產(chǎn)生的類就是細(xì)節(jié),細(xì)節(jié)的特點(diǎn)是能被實(shí)例化.

模塊之間的依賴通過抽象發(fā)生,實(shí)現(xiàn)類與實(shí)現(xiàn)類之間不發(fā)生直接依賴關(guān)系,他們的依賴關(guān)系是通過接口或抽象類進(jìn)行的.

面向接口編程是面向?qū)ο缶柚?

優(yōu)點(diǎn)

  • 可拓展性好
  • 耦合度低

開閉原則(Open-Close Principle)

簡述

java中最基礎(chǔ)的設(shè)計原則,指導(dǎo)我們?nèi)绾谓⒁粋€穩(wěn)定/靈活的系統(tǒng).

定義:一個軟件實(shí)體,如類,模塊,函數(shù)都應(yīng)該對擴(kuò)展開放,對修改關(guān)閉.

在軟件生命周期內(nèi),迭代時盡量通過擴(kuò)展的方式來實(shí)現(xiàn)變化,而不是通過修改執(zhí)勤啊的已有代碼來實(shí)現(xiàn).

優(yōu)點(diǎn)

  • 增加穩(wěn)定性
  • 可拓展性高

接口隔離原則(Interface Segregation Principle)

簡述

客戶端不應(yīng)該依賴他不需要的接口.一個類對另一個類的依賴應(yīng)該建立在最小的接口上.檔一個接口太大時,就要考慮分割成更小的接口.客戶端進(jìn)需要指導(dǎo)與之相關(guān)的方法即可

優(yōu)點(diǎn)

  • 降低耦合性
  • 提高代碼的可讀性
  • 隱藏實(shí)現(xiàn)細(xì)節(jié)

迪米特原則(Law of Demeter)/最少知識原則(Least Knowledge Principle)

簡述

一個對象應(yīng)該對其他對象有最少的了解.

類的內(nèi)部如何實(shí)現(xiàn),如何復(fù)雜都與調(diào)用者或依賴者沒有關(guān)系,調(diào)用者或依賴者只需要知道他需要的方法即可.

優(yōu)點(diǎn)

  • 降低復(fù)雜度
  • 降低耦合度
  • 增加穩(wěn)定性
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末皆刺,一起剝皮案震驚了整個濱河市少辣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌羡蛾,老刑警劉巖漓帅,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡忙干,警方通過查閱死者的電腦和手機(jī)屯伞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豪直,“玉大人,你說我怎么就攤上這事珠移」遥” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵钧惧,是天一觀的道長暇韧。 經(jīng)常有香客問我,道長浓瞪,這世上最難降的妖魔是什么懈玻? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮乾颁,結(jié)果婚禮上涂乌,老公的妹妹穿的比我還像新娘。我一直安慰自己英岭,他們只是感情好湾盒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诅妹,像睡著了一般罚勾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吭狡,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天尖殃,我揣著相機(jī)與錄音,去河邊找鬼划煮。 笑死送丰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的般此。 我是一名探鬼主播蚪战,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼铐懊!你這毒婦竟也來了邀桑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤科乎,失蹤者是張志新(化名)和其女友劉穎壁畸,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捏萍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年太抓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片令杈。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡走敌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出逗噩,到底是詐尸還是另有隱情掉丽,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布异雁,位于F島的核電站捶障,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏纲刀。R本人自食惡果不足惜项炼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望示绊。 院中可真熱鬧锭部,春花似錦、人聲如沸面褐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盆耽。三九已至蹋砚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摄杂,已是汗流浹背坝咐。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留析恢,地道東北人墨坚。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像映挂,于是被迫代替她去往敵國和親泽篮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

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