1.构建者模式:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。如下:
Retrofit.Builder().client(okHttpClient)
//TODO GsonConverterFactory的作用
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.baseUrl(BASE_URL)
.build()
2.kotlin中的具名可选参数
kotlin中的函数和构造器都支持具名可选参数,主要表现在两点:
1)在具体化一个参数的取值时,可以通过带上它的参数名,而不是它在所有参数中的位置决定;
2)由于参数可以设置默认值,这允许我们只给出部分参数的取值,而不是它所有的参数。
如下:
class Robot(val code: String,
val battery: String? =null,
val height: Int? =null,
val weight: Int? =null){
}
val robot1 = Robot(code = "007")
val robot2 = Robot(code = "007",battery = "R6")
val robot3 = Robot(code = "007",height = 100, weight = 80)
3.添加require功能
如果,某些参数的设置有限制,可以使用require,如下:
class Robot(val code: String,
val battery: String? =null,
val height: Int? =null,
val weight: Int? =null) {
init {
require(weight ==null ||battery !=null){
"Battery should be determined when setting weight"
}
}
}
所以,在kotlin中,当需要创建多参数的对象时,除了使用构建者模式,还可以考虑使用具名可选参数实现。
本文摘自《Kotlin核心编程》
网友评论