面试题答案
一键面试// 定义支付策略接口
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))
}