您好,登錄后才能下訂單哦!
2020年,我們已經過了5天,這樣說來,春招的也快來了,以前總結了不少面試題分享給大家
今天就給大家詳細總結一下設計模式,春招可不能倒上面
第一次看文章的朋友可以關注我,會不定期發布大廠面試題、Android架構技術知識點及解析等內容,還有學習PDF+源碼筆記+面試文檔+進階視頻分享
就一個類來說,應該只有一個引起它變化的原因
一個類做一件事情,避免職責過多。比如這種情況是不太好的,在一個Activity中既有bean文件,又有http請求,還有adapter等等,這就導致我們需要修改任何一個東西的時候都會導致Activity的改變,這樣一來就有多個引起它變化的原因,不符合單一職責原則
類,模塊,函數應該是可以擴展的,但是不可以修改
對于擴展是開放的,對于修改是封閉的。盡量做到面對需求的改變時,我們的代碼能保持相對穩定,通過擴展的方式應對變化,而不是修改原有代碼實現
所有引用基類的地方,必須可以透明的時候其子類的對象
里氏替換原則是實現開放封閉原則的重要方式之一,我們知道,使用基類的地方都可以使用子類去實現,因為子類擁有基類的所有方法,所以在程序設計中盡量使用基類類型對對象進行定義,在運行時確定子類類型。
高層模塊不應該依賴于底層模塊,兩者都應該依賴于抽象,抽象不應該依賴于細節,細節應該依賴于抽象
依賴倒置原則針對的是模塊之間的依賴關系,高層模塊指調用端,底層模塊指具體的實現類,抽象指接口或抽象類,細節就是實現類。該原則的具體表現就是模塊間的依賴通過抽象發生,直線類之間不發生直接依賴關系,依賴通過接口或抽象類產生,降低耦合,比如MVP模式下,View層和P層通過接口產生依賴關系
一個軟件實體應該盡可能少的與其他實體發生相互作用
迪米特原則要求我們在設計系統時,盡量減少對象之間的交互
一個類對另一個類的依賴應該建立在最小的接口上
接口隔離原則的關鍵是接口以及這個接口要小,如何小呢,也就是我們要為專門的類創建專門的接口,這個接口只對它有效,不要試圖讓一個接口包羅萬象,要建立最小的依賴關系
當然想看以往總結的學習內容和面試文章可以看我的GitHub: https://github.com/Meng997998/AndroidJX
還有需要面試資料總結vx【xx13414521】
設計模式分為三類
與對象創建有關包括單例模式,工廠方法模式,抽象工廠模式,建造者模式,原型模式
結構性設計模式是從程序的結構上解決模塊之間的耦合問題,包括適配器模式,代理模式,裝飾模式,外觀模式,橋接模式,組合模式和享元模式
主要處理類或對象如何交互及如何分配職責,包括策略模式,模板方法模式,觀察者模式,迭代器模式,責任鏈模式,命令模式,備忘錄模式,狀態模式,訪問者模式,中介模式,解析器模式
關注我,會不定期發布大廠面試題、Android架構技術知識點及解析
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。