iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
Mobile Development

肯定會斷賽之在 Android 開發使用設計模式系列 第 5

113/05 - 抽象工廠模式(Abstract Factory)- Kotlin

  • 分享至 

  • xImage
  •  

介紹

Kotlin 的抽象工廠模式和 Java 版差不多,只差在 Get 和 Set 寫法不同,還有一些語法差異

抽象工廠模式實作

假設我是補習班工廠,要產出工程師、設計師

基本建立

  1. 製造介面產品(Product)
interface MakeVocationalProduct {
    fun getName(name: String): String
}
  1. 創造介面工廠(Factory)
interface CreateVocationalFactory {
    var createVocational: MakeVocationalProduct
}

3-1. 製造工程師

class MakeEngineerProduct : MakeVocationalProduct {
    override fun getName(name: String): String {
        return "工程師: $name"
    }
}

3-2. 製造設計師

class MakeDesignerProduct : MakeVocationalProduct {
    override fun getName(name: String): String {
        return "設計師: $name"
    }
}

4-1. 創造工程師工廠

class CreateEngineerFactory : CreateVocationalFactory {
    override var createVocational: MakeVocationalProduct
        get() = MakeEngineerProduct()
        set(value) {}
}

4-2. 創造設計師工廠

class CreateDesignerFactory : CreateVocationalFactory {
    override var createVocational: MakeVocationalProduct
        get() = MakeDesignerProduct();
        set(value) {}
}

產生工程師或設計師

  1. 產生工程師
val engineer: CreateVocationalFactory = CreateEngineerFactory()
  1. 產生設計師
val designer: CreateVocationalFactory = CreateDesignerFactory()
  1. 印出日誌
Log.d("${engineer.createVocational.getName("Andy")} / ${designer.createVocational.getName("AWD")}")
  1. 產生結果
工程師: Andy / 設計師: AWD

上一篇
113/04 - 抽象工廠模式(Abstract Factory)- Java
下一篇
113/06 - 創造者模式(Builder)- Java
系列文
肯定會斷賽之在 Android 開發使用設計模式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言