主要用途:
- 创建对象
Kotlin中几种最主流的创建型设计模式:
- 工厂方法模式、抽象工厂模式以及构建者模式。
伴生对象增强工厂模式
简单工厂、工厂方法模式以及抽象工厂
interface Computer {
val cpu:String
}
//类1
class PC(override val cpu: String = "Core") : Computer
//类2
class Server(override val cpu: String = "Server"):Computer
//枚举
enum class ComputerType {
PC,
Server
}
//工厂类
open class ComputerFactory {
fun produce(type: ComputerType):Computer{
return when(type){
ComputerType.PC->PC()
ComputerType.Server->Server()
}
}
}
//测试方法
fun main(){
val produce = ComputerFactory().produce(ComputerType.PC)
print(produce.cpu)
}
重载操作符的改进
object ComputerFactoryOperator{
// 重载构造操作符
operator fun invoke (type:ComputerType) :Computer{
return when(type){
ComputerType.Server->Server();
ComputerType.PC->PC();
}
}
}
静态工厂方法替换构造函数
interface Computer {
val cpu:String
//静态工厂方法替代构造函数
companion object{
operator fun invoke(computerType: ComputerType):Computer{
return when(computerType){
ComputerType.PC->PC()
ComputerType.Server->Server()
}
}
}
}
扩展伴生对象方法
//通过cpu型号 判断电脑类型
fun Computer.Companion.fromCpu(cpu: String): ComputerType? = when (cpu) {
"Core" -> ComputerType.PC
"Xeon" -> ComputerType.Server
else -> null
}
网友评论