一、运用享元模式的类
package com.study.flyweight
object PhonePool {
val huaWeiPhonePool: ArrayList<HuaWeiPhone> by lazy {
val tempPool = arrayListOf<HuaWeiPhone>()
for (i in 0..3) {
val random = (0..3).random()
tempPool.add(HuaWeiPhone("手机测试标签$i", random == i))
}
tempPool
}
fun getHuaWeiPhone(): HuaWeiPhone {
huaWeiPhonePool.forEach {
if (!it.isUse) {
return it
}
}
return HuaWeiPhone("新购手机")
}
}
二、主程序调用
package com.study.flyweight
fun main() {
val huaWeiPhone = PhonePool.getHuaWeiPhone()
println("手机标签名称::${huaWeiPhone.phoneLabelName}")
}
三、运行结果