iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0

介紹

昨天寫 Java 的原型模式,寫了一堆 Clone 相關的程式碼,結果今天才知道 Kotlin 在 data class 已經內建 copy 語法,又又又少寫很多

好 Kotlin,不學嗎.jpg

原型模式實作

  1. 使用 data class 建立會員類別
data class Member(var name: String, var age: String)
  1. 使用 data class 建立電腦類別
data class Computer(var brand: String)
  1. 會員類別內增加電腦類別
data class Member(var name: String, var age: String, var computer: Computer)

原型模式測試

  1. 建立基本會員,電腦品牌為刀碩
val computerBase = Computer("ASUS")
val memberBase = Member("AndyAWD", "30", computerBase)
  1. 複製基本會員,新會員 1 重新設定電腦品牌為蘋果
val computer1 = Computer("APPLE")
val member1 = memberBase.copy(computer = computer1)
  1. 複製基本會員,新會員 2 重新設定電腦品牌為 MSI
val computer2 = Computer("MSI")
val member2 = memberBase.copy(computer = computer2)
  1. 輸出結果
基本角色 - 姓名:AndyAWD / 年齡:30 / 電腦品牌:ASUS
會員1 - 姓名:AndyAWD / 年齡:30 / 電腦品牌:APPLE
會員2 - 姓名:AndyAWD / 年齡:30 / 電腦品牌:MSI

上一篇
113/08 - 原型模式(Prototype)- Java
下一篇
113/10 - 合成模式(Composite)- Java
系列文
肯定會斷賽之在 Android 開發使用設計模式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言