MST
星途 面试题库

面试题:Kotlin中构建器模式与DSL结合实现简单配置场景

假设你要开发一个简单的游戏配置系统,玩家可以配置游戏角色的名称、初始生命值和技能列表。请使用Kotlin的构建器模式与DSL结合来实现该配置功能。简要描述你的设计思路,并给出关键代码实现。
11.1万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试

设计思路

  1. 使用构建器模式,定义一个构建器类,负责构建游戏角色的配置。
  2. 利用DSL(领域特定语言),让代码更具可读性和灵活性,通过函数扩展的方式为构建器提供DSL风格的配置方法。

关键代码实现

// 游戏角色类
data class GameCharacter(
    val name: String,
    val initialHealth: Int,
    val skills: List<String>
)

// 构建器类
class GameCharacterBuilder {
    private var name: String = ""
    private var initialHealth: Int = 0
    private val skills: MutableList<String> = mutableListOf()

    fun name(name: String) {
        this.name = name
    }

    fun initialHealth(health: Int) {
        this.initialHealth = health
    }

    fun skill(skill: String) {
        skills.add(skill)
    }

    fun build(): GameCharacter {
        return GameCharacter(name, initialHealth, skills)
    }
}

// DSL扩展函数
fun gameCharacter(block: GameCharacterBuilder.() -> Unit): GameCharacter {
    val builder = GameCharacterBuilder()
    builder.block()
    return builder.build()
}

使用示例

fun main() {
    val character = gameCharacter {
        name("Warrior")
        initialHealth(100)
        skill("Slash")
        skill("Shield Bash")
    }
    println(character)
}