Android程序設(shè)計之設(shè)計模式開篇

一、高內(nèi)聚低耦合

1理逊、耦合:耦合是指程序設(shè)計各模塊之間的依賴關(guān)系橡伞,包括控制關(guān)系、調(diào)用關(guān)系晋被、數(shù)據(jù)傳遞關(guān)系兑徘,依賴越緊密,耦合就越大羡洛,如果功能發(fā)生變化挂脑,要修改的模塊就不僅僅是當(dāng)前模塊,還可能牽扯到耦合的模塊欲侮,這樣維護成本就很高崭闲,所以我們在設(shè)計代碼的時候應(yīng)當(dāng)遵循低耦合的原則。影響耦合的因素也就是:

(1)  一個模塊對另一模塊的調(diào)用

(2)  一個模塊向另一個模塊傳遞的數(shù)據(jù)的多少

(3)  一個模塊對另一個模塊的控制的多少

(4)   模塊之間接口的復(fù)雜程度

2威蕉、耦合從低到高可以分為一下幾種類型:

(1)非直接耦合:兩模塊之間沒有直接關(guān)系刁俭,其模塊間的依賴完全是有主模塊的控制和調(diào)用來實現(xiàn)。

(2)數(shù)據(jù)耦合:一個模塊訪問另一個模塊韧涨,彼此之間通過簡單的數(shù)據(jù)參數(shù)來交換輸入牍戚、輸出信息侮繁,這里的簡單參數(shù)不同控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量如孝。

(3)標(biāo)記耦合:如果一組模塊通過參數(shù)表來傳遞記錄信息宪哩,就是標(biāo)記耦合,這一記錄是某一記錄的子結(jié)構(gòu)暑竟,不是簡單數(shù)據(jù)斋射。

(4)控制耦合:一個模塊通過傳遞快關(guān)、標(biāo)志但荤、名字等控制信息罗岖,明顯的控制選擇另一模塊的功能。

(5)外部耦合:一組模塊都訪問同一全局簡單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu)腹躁,而且不是通過參數(shù)傳遞該全局變量信息

(6)公共耦合:一組模塊都訪問同一公共數(shù)據(jù)環(huán)境桑包,該數(shù)據(jù)環(huán)境可以是全局的數(shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)纺非、內(nèi)存的公共覆蓋區(qū)等哑了。

(7)內(nèi)容耦合:一個模塊直接修改另一模塊的數(shù)據(jù),或直接傳入另一模塊烧颖。

內(nèi)聚:內(nèi)聚是模塊的內(nèi)部各元素之間聯(lián)系的緊密程度

1弱左、內(nèi)聚度從低到高分為7種:

(1)偶然內(nèi)聚

(2)邏輯內(nèi)聚

(3)瞬時內(nèi)聚

(4)過程內(nèi)聚

(5)通信內(nèi)聚

(6)順序內(nèi)聚

(7)功能內(nèi)聚

二、設(shè)計模式六大原則:

1炕淮、單一職責(zé)原則(SRP):

定義:就一個類而言拆火,應(yīng)該僅有一個引起它變化的原因。

2涂圆、開閉原則(OCP):

定義:軟件中的對象(類们镜、模塊、函數(shù)等)應(yīng)該對于擴展是開放的润歉,對于修改是封閉的模狭。

3、里氏替換原則(LSP):

定義:所有引用基類的地方必須能透明使用其子類的對象踩衩。

4嚼鹉、依賴倒置原則:

定義:抽象不應(yīng)該依賴細節(jié),細節(jié)應(yīng)該依賴抽象驱富。

5锚赤、接口隔離原則(ISP):

定義:客戶端不應(yīng)該依賴它不需要的接口(類之間的依賴關(guān)系應(yīng)該建立在最小接口上,接口隔離原則將非常龐大臃腫的接口拆分為更小的和更具體的接口)

6萌朱、迪米特原則(LOD):

定義:也稱最少知識原則,一個對象應(yīng)該對其他對象有最少的了解

三策菜、設(shè)計模式總體歸為三大類:

1晶疼、創(chuàng)建型模式(5種):單例模式酒贬、建造者模式、工廠模式翠霍、抽象工廠模式锭吨、原型模式;

2寒匙、結(jié)構(gòu)型模式(7種):適配器模式零如、橋接模式、裝飾模式锄弱、組合模式考蕾、外觀模式、亨元模式会宪、代理模式肖卧;

3、行為型模式(11種):觀察著模式掸鹅、訪問者模式塞帐、中介者模式、策略模式巍沙、解釋器模式葵姥、命令模式、迭代器模式句携、備忘錄模式榔幸、責(zé)任鏈模式、模板模式务甥,狀態(tài)模式牡辽;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市敞临,隨后出現(xiàn)的幾起案子态辛,更是在濱河造成了極大的恐慌,老刑警劉巖挺尿,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奏黑,死亡現(xiàn)場離奇詭異,居然都是意外死亡编矾,警方通過查閱死者的電腦和手機熟史,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窄俏,“玉大人蹂匹,你說我怎么就攤上這事“简冢” “怎么了限寞?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵忍啸,是天一觀的道長。 經(jīng)常有香客問我履植,道長计雌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任玫霎,我火速辦了婚禮凿滤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庶近。我一直安慰自己翁脆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布拦盹。 她就那樣靜靜地躺著鹃祖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪普舆。 梳的紋絲不亂的頭發(fā)上恬口,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音沼侣,去河邊找鬼祖能。 笑死,一個胖子當(dāng)著我的面吹牛蛾洛,可吹牛的內(nèi)容都是我干的养铸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼轧膘,長吁一口氣:“原來是場噩夢啊……” “哼钞螟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谎碍,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤鳞滨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蟆淀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拯啦,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年熔任,在試婚紗的時候發(fā)現(xiàn)自己被綠了褒链。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡疑苔,死狀恐怖甫匹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤兵迅,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布哀墓,位于F島的核電站忘苛,受9級特大地震影響麦锯,放射性物質(zhì)發(fā)生泄漏棵介。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一季惯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧臀突,春花似錦勉抓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梳码,卻和暖如春隐圾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背掰茶。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工暇藏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人濒蒋。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓盐碱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沪伙。 傳聞我的和親對象是個殘疾皇子瓮顽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

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