MST

星途 面试题库

面试题:Kotlin中策略模式的实现

请用Kotlin实现策略模式,假设有一个支付功能,有微信支付、支付宝支付等不同支付方式,每种支付方式为一个具体策略,设计并实现相关代码。
30.7万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试
// 定义支付策略接口
interface PaymentStrategy {
    fun pay(amount: Double): String
}

// 微信支付策略实现
class WeChatPayment : PaymentStrategy {
    override fun pay(amount: Double): String {
        return "使用微信支付了 $amount 元"
    }
}

// 支付宝支付策略实现
class AlipayPayment : PaymentStrategy {
    override fun pay(amount: Double): String {
        return "使用支付宝支付了 $amount 元"
    }
}

// 支付上下文
class PaymentContext(private val strategy: PaymentStrategy) {
    fun executePayment(amount: Double): String {
        return strategy.pay(amount)
    }
}

使用示例:

fun main() {
    // 使用微信支付
    val weChatPaymentContext = PaymentContext(WeChatPayment())
    println(weChatPaymentContext.executePayment(100.0))

    // 使用支付宝支付
    val alipayPaymentContext = PaymentContext(AlipayPayment())
    println(alipayPaymentContext.executePayment(200.0))
}