家族战队|Kotlin系列:构造函数的优化与最佳实践
开篇本文通过简单总结了构造函数的通用用法 , 以及对应的最佳实践 。
分类
- 单构造函数
class Person0522(var name: String, var age: Int) }
当然该写法还有比较复杂的写法比如这样:
class Person0522 constructor(var name: String, var age: Int)
- 比最简单的写法多了一个constructor关键字
class Person0522 constructor(name: String, age: Int) {var name: String = namevar age: Int = age}
不过种种比较下来 , 还是第一种最简单 。- 多构造函数
class Person0522 {var name: String = ""var age: Int = -1constructor()constructor(name: String) {this.name = name}constructor(name: String, age: Int) : this(name) {this.age = age}init {require(age > 0) { "还没出生了..." }}}
不过这种情况下 , 其实设计的非常不好了 , 因为参数name和age要么要有初始值 , 要么给默认值 , 都不怎么好 。最佳实践当多构造函数写出来的时候 , 你是不是觉得很啰嗦 , 如果很啰嗦那么就对了 , 因为我们要对他进行优化 , 我们来看看这个写法:
class Person0522(var name: String, var age: Int = 0, var address: String = "")val person0522 = Person0522(name = "xlf")
- 参数是有默认值的 , 要么为 null , 要么结合业务为某个特殊含义的值
- 利用显示参数赋值
如果在 Java中 , 要简化多构造函数的情况 , 我们需要使用的是Builder模式 , 但是 Kotlin的该用法 , 真的很省心 。
【家族战队|Kotlin系列:构造函数的优化与最佳实践】又回来更新原创文章了 , 欢迎大家持续关注~
- 捌岛谈历史|没上过福布斯榜,买下了苏伊士运河,80%印度铁路,隐形富豪家族
- 兰博基尼|曝兰博基尼全新超跑:或替代“大牛”成为家族新旗舰
- OMG战队|IG2:0OMG TS卢锡安打破质疑一脸淡定 Puff与宝蓝默契惊人TS却扎心
- 青年|MTG4比1击败eStar晋级世冠半决赛,无愧GT战队之光
- BLG战队|内幕消息:LGD此战锁定季后赛,BLG败者离场,回家钓鱼!有礼相送
- RNG战队|LPL夏季赛:WE完胜ES RNG零封TES继续保留季后赛悬念
- 士兵|美海军陆战队演习事故致1死8人失踪,军方终止搜救
- 海军|美海军陆战队演习致1死8人失踪 军方终止搜救
- 新华社|美海军陆战队演习事故致1死8人失踪 军方终止搜救
- 路人战队|打破SCI与“影响因子”的神话