金三銀四,又迎來了新一輪的跳槽季節。我也是跳槽隊伍中的一員,想到剛來北京北難住最后的就是問到設計模式。說真的我是一竅不通。最后只能簡單背背概念。沒想到工作一年來,想到跳槽,自己匱乏的還是設計模式,雖然工作中無意識的用到過很多模式,但是只存在會用的階段。趁現在還有時間,就總結下android 設計模式 和概念。希望可以學之皮毛。應用最廣泛的模式——單例模式
定義:確保某一個類只有一個實例,而且自行實例化并向整個系統提供這個實例。
細分的化,單例模式有七種寫法。但是感覺有點強硬。所以不介紹了。
單例模式有兩種模式:
懶漢式:
class Singleton { PRivate static Singleton instance=null; private Singleton(){} static Singleton getInstance() { if(instance==null) instance=new Singleton(); return instance; } 餓漢式:class Singleton { private static Singleton instance=new Singleton(); private Singleton(){} static Singleton getInstance() { return instance; }}自由擴展你的項目——Builder模式定義: Builder 模式是一步一步創建一個復雜對象的創建型模式,它允許用戶在不知道內部構造細節的情況下,可以更精細地控制對象的構造流程,該模式是為了將構建復雜對象的過程和它的部件解耦,使得構建過程和部件的表示隔離開來。
因為一個復雜的對象有很多大量組成部分,如汽車,有車輪,方向盤,發動機,還有各種小零件等,如何將這些部件裝配成一輛汽車,這個裝配過程很漫長。也很復雜,對于這種情況,為了在構建過程中對外部隱藏實現細節,就可以使用builder模式將部件和組裝過程分離,使得構建過程和部件都可以自由擴展,兩者之間的耦合也降低。
不要問我為什么看不懂,因為我也不懂,工作中我肯定沒有用過這種模式。自己慢慢理解吧。
使程序運行更高效——原型模式
定義:用原型實例指定創建對象的種類,并通過拷貝這些原型創建新的對象。
應用最廣泛的模式——工廠方法模式
定義:定義一個用于創建對象的接口,讓子類決定實例化那個類。
在任何需要生成復雜對象的地方,都可以使用工廠方法模式,復雜對象適合使用工廠模式, 用new就可以完成創建的對象無需使用工廠模式;
運動員.javapublic interface 運動員 { public void 跑(); public void 跳();}足球運動員.javapublic class 足球運動員 implements 運動員 { public void 跑(){ //跑啊跑 } public void 跳(){ //跳啊跳 }}籃球運動員.javapublic class 籃球運動員 implements 運動員 { public void 跑(){ //do nothing } public void 跳(){ //do nothing }}體育協會.javapublic class 體育協會 { public static 運動員 注冊足球運動員(){ return new 足球運動員(); } public static 運動員 注冊籃球運動員(){ return new 籃球運動員(); }}俱樂部.javapublic class 俱樂部 { private 運動員 守門員; private 運動員 后衛; private 運動員 前鋒; public void test() { this.前鋒 = 體育協會.注冊足球運動員(); this.后衛 = 體育協會.注冊足球運動員(); this.守門員 = 體育協會.注冊足球運動員(); 守門員.跑(); 后衛.跳(); }}得心應手的“粘合劑”——適配器模式
定義:適配器模式在我們的開發中使用頻率很高,從代碼中隨處可見額Adapter就可以判斷出來,從最早的listview,
Gredview到現在RecycleView都需要使用Adpater,并且在開發中我們遇到的優化問題,出錯率較大的地方也基本都是
Adapter。
適配器是讓兩個不兼容的類融合在一起,它有點像粘合劑,將不同的東西通過一種轉換使得他們能夠協作起來。
—————————————————————————————————————以上都是廢話——————————————————————————————————
適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作
新聞熱點
疑難解答