1.
Kotlin天生支持单例模式,只要使用object就可以实现一个单例模式:
object ComputerFactory{
fun produce(type: ComputerType): Computer {
return when (type) {
ComputerType.PC -> PC()
ComputerType.Server -> Server()
}
}
}
2.使用opertator重载invoke方法代替produce
object ComputerFactory{
operator fun invoke(type: ComputerType): Computer {
return when (type) {
ComputerType.PC -> PC()
ComputerType.Server -> Server()
}
}
}
使用时,如下ComputerFactory(ComputerType.PC)
3.伴生对象创建静态工厂方法
interface Computer{
companion object {
operator fun invoke(type: ComputerType): Computer {
return when(type) {
ComputerType.PC -> PC()
ComputerType.Server -> Server()
}
}
}
}
调用如下:Computer(ComputerType.PC)
本文摘自《Kotlin核心编程》
网友评论