設計模式是我們Android成長之路必備的一項技能,相信很多同學都已經Get了,現在讓我們來看看在Kotlin中設計模式是如何表達的呢。
單例模式是一種常用的軟件設計模式。在它的核心結構中只包含一個被稱為單例的特殊類。通過單例模式可以保證系統中一個類只有一個實例 。
使用場景: 確保某個類有且只有一個對象的場景,避免產生多個對象消耗過多的資源
懶漢式:
餓漢式:
Kotlin單例模式寫法
kotlin寫法是不是簡單直接越看越喜歡,一句話就概括了。
來看一下官方的說明
在 Kotlin 當中直接通過關鍵字 object 聲明一個單例,并且它是線程安全的,并且object 聲明的方式也是延遲加載的。
代理模式是為其他對象提供一種代理以控制對這個對象的訪問
代理模式是使用一個代理對象來訪問目標對象的行為,Kotlin 下的實現與 Java 基本類似
抽象類
被代理類
代理類
調用
通過代理模式可以把復雜的判斷和生成通知的邏輯都屏蔽了,讓代碼更加清晰
建造者模式是將一個復雜對象的構建和它的表示分離,使得同樣的構建過程可以創建不同的表示
比如我們常用的 AlertDialog 、universal-image-loader就是使用的建造者模式,讓我們看看kotlin中該怎么表達
使用方法與Java一樣
其實Kotlin 的 apply 擴展原生也支持 Builder 模式
觀察者模式是定義對象間的一種一對多的依賴關系,使得每當一個對象改變狀態,則所有依賴于它的對象都會得到通知并被自動更新
常見的觀察者模式如RecyclerView的Adapter的notifyDataSetChanged更新方法、BroadcastReceiver、開源庫EventBus、RxJava等等
Kotlin的寫法與Java類似
通過UnReadMessageObserver 單例來實現全局觀察管理未讀消息
被觀察者
觀察者
觀察者模式是我們經常使用的模式,它的一個重要作用就是解耦,將觀察者個被觀察者解耦
1.適配器模式把一種接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作
2.舉個栗子:手機普通充電需要5V的電壓,而生活用電電壓是220V,而我們的充電器就充當了轉換適配的作用,
3.這里的適配器也是一個道理
4.適配器模式中的目標接口也就是 5V電壓的接口
適配器模式中需要被適配的接口,日常220V電壓
適配器
以上就是適配器模式在Kotlin上的簡單實現了,適配器模式的原理在于把原本不兼容的接口融合在了一起,使之能更好的協作。
以上幾種設計模式是我們經常會用到的,Kotlin的大多設計模式基本與Java實現大致相同,靈活的使用設計模式能讓我們代碼更加的靈活,便于管理。