Android面試輕鬆搞定設計模式:六大原則+三大分類+詳細總結
2020年,我們已經過了5天,這樣說來,春招的也快來了,以前總結了不少面試題分享給大家
今天就給大家詳細總結一下設計模式,春招可不能倒上面
第一次看文章的朋友可以關注我,會不定期釋出大廠面試題、Android架構技術知識點及解析等內容,還有學習PDF+原始碼筆記+面試文件+進階影片分享
設計模式六大原則
a.單一職責原則
就一個類來說,應該只有一個引起它變化的原因
一個類做一件事情,避免職責過多。比如這種情況是不太好的,在一個Activity中既有bean檔案,又有http請求,還有adapter等等,這就導致我們需要修改任何一個東西的時候都會導致Activity的改變,這樣一來就有多個引起它變化的原因,不符合單一職責原則
b.開放封閉原則
類,模組,函式應該是可以擴充套件的,但是不可以修改
對於擴充套件是開放的,對於修改是封閉的。儘量做到面對需求的改變時,我們的程式碼能保持相對穩定,透過擴充套件的方式應對變化,而不是修改原有程式碼實現
c.里氏替換原則
所有引用基類的地方,必須可以透明的時候其子類的物件
里氏替換原則是實現開放封閉原則的重要方式之一,我們知道,使用基類的地方都可以使用子類去實現,因為子類擁有基類的所有方法,所以在程式設計中儘量使用基類型別對物件進行定義,在執行時確定子類型別。
d.依賴倒置原則
高層模組不應該依賴於底層模組,兩者都應該依賴於抽象,抽象不應該依賴於細節,細節應該依賴於抽象
依賴倒置原則針對的是模組之間的依賴關係,高層模組指呼叫端,底層模組指具體的實現類,抽象指介面或抽象類,細節就是實現類。該原則的具體表現就是模組間的依賴透過抽象發生,直線類之間不發生直接依賴關係,依賴透過介面或抽象類產生,降低耦合,比如MVP模式下,View層和P層透過介面產生依賴關係
e.迪米特原則(最少知識原則)
一個軟體實體應該儘可能少的與其他實體發生相互作用
迪米特原則要求我們在設計系統時,儘量減少物件之間的互動
f.介面隔離原則
一個類對另一個類的依賴應該建立在最小的介面上
介面隔離原則的關鍵是介面以及這個介面要小,如何小呢,也就是我們要為專門的類建立專門的介面,這個介面只對它有效,不要試圖讓一個介面包羅永珍,要建立最小的依賴關係
還有需要面試資料總結vx【xx13414521】
設計模式的分類
設計模式分為三類
a.建立型設計模式
與物件建立有關包括單例模式,工廠方法模式,抽象工廠模式,建造者模式,原型模式
b.結構型設計模式
結構性設計模式是從程式的結構上解決模組之間的耦合問題,包括介面卡模式,代理模式,裝飾模式,外觀模式,橋接模式,組合模式和享元模式
c.行為型設計模式
主要處理類或物件如何互動及如何分配職責,包括策略模式,模板方法模式,觀察者模式,迭代器模式,責任鏈模式,命令模式,備忘錄模式,狀態模式,訪問者模式,中介模式,解析器模式
最後
關注我,會不定期釋出大廠面試題、Android架構技術知識點及解析
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952849/viewspace-2672009/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 設計模式六大原則詳解設計模式
- 設計模式:物件導向設計的六大原則 (絕對詳細)設計模式物件
- 設計模式的分類和六大原則設計模式
- 設計模式-六大原則設計模式
- 設計模式——六大原則設計模式
- 設計模式六大原則設計模式
- 設計類六大原則
- 設計模式六大原則(六)----開閉原則設計模式
- 設計模式之六大原則設計模式
- 設計模式的六大原則設計模式
- Python設計模式六大原則!Python設計模式
- java面試題總結-詳細分類Java面試題
- 設計模式“6”大原則!設計模式
- 設計模式六大原則(四)----介面隔離原則設計模式
- 設計模式六大原則(五)----迪米特法則設計模式
- 【設計模式】第一篇:概述、耦合、UML、七大原則,詳細分析總結(基於Java)設計模式Java
- 聊一聊設計模式(一)-- 六大原則設計模式
- PHP 詳細面試總結 (三 Redis 基礎詳解)PHP面試Redis
- 設計模式的七大原則詳解設計模式
- 設計模式六大原則(二)----裡式替換原則設計模式
- 設計模式六大原則(一)----單一職責原則設計模式
- 設計模式 -- 設計模式七大原則設計模式
- 設計模式之7大原則設計模式
- 設計模式七大原則設計模式
- 【個人紀錄】C++面試總結之三(設計模式)C++面試設計模式
- PHP 詳細面試總結 (每日更新)PHP面試
- 【設計模式筆記】(零)- 物件導向的六大原則設計模式筆記物件
- 婚戀app原始碼設計模式六大原則有哪些?APP原始碼設計模式
- Python設計模式的六大原則分別是什麼?Python設計模式
- 2018最新 Android 面試題總結(三)Android面試題
- 面象物件設計6大原則之三:里氏替換原則物件
- 設計模式的七大原則設計模式
- PHP 詳細面試總結 (五 每日更新)PHP面試
- 好程式設計師Java培訓分享Java設計模式的六大原則程式設計師Java設計模式
- Android面試之Java設計模式Android面試Java設計模式
- 遊戲設計的三大原則遊戲設計
- Android面試總結Android面試
- OA系統設計的六大原則