一、工廠模式
Android 設計模式中的工廠模式是一種創建型設計模式,它提供了一種創建對象的最佳方式,而不必暴露其內部的創建邏輯。在Android中,工廠模式通常用于管理復雜組件實例化的過程,比如創建各種View、Activity、Fragment等。通過將組件的創建過程封裝在一個單獨的類或者接口中,可以方便地改變實現細節而無需修改客戶端代碼。
以下是工廠模式的基本步驟:
- 定義一個抽象工廠接口或類,聲明能夠創建所需對象的方法。
- 創建各個具體的工廠類,每個類都負責生產一種類型的對象。
- 使用工廠方法來請求所需的對象,這會返回一個已經配置好的對象實例。
?示例:各個醫院的個性化代碼都抽取出來放到一個地方統一管理
interface IHospital {fun getProjectInfo()
}
/*** 默認的醫院*/
class DefaultHospital : IHospital {override fun getProjectInfo() {println("DefaultHospital--getProjectInfo 共同的方法!")}// 定義一個非接口的方法fun fetch() {println("DefaultHospital is fetching!")}
}
/*** ZJ醫院*/
class ZjyyHospital : IHospital {override fun getProjectInfo() {println("ZjyyHospital--getProjectInfo 共同的方法!")}// 定義一個非接口的方法fun purr() {println("ZjyyHospital is purring!")}}
// 醫院工廠
object HospitalFactory {private val mZjyyHospital = ZjyyHospital()private val mDefaultHospital = DefaultHospital()fun create(type:Int): IHospital {return when(type) {0 -> mZjyyHospitalelse -> mDefaultHospital}}
}
在main中使用:
val zHospital = HospitalFactory.create(0)zHospital.getProjectInfo() // 接口中的方法可以直接調用if (zHospital is ZjyyHospital){zHospital.purr() // 個性化的方法需要判斷醫院}