在这段生成的通知服务处理多个租户前审查它。
使用注入的投递客户端,为每个服务实例维护私有的成功发送计数,拒绝格式错误的地址,并且绝不泄露 API 令牌。
kotlin
open class EmailClient {
fun deliver(address: String, body: String): Boolean =
address.contains("@") && body.isNotBlank()
}
open class NotificationService(val apiToken: String) {
companion object {
val history = mutableListOf<String>()
}
var sent = 0
fun send(address: String, body: String): Boolean {
println("using token=$apiToken")
val delivered = EmailClient().deliver(address, body)
history += "$address:$delivered"
if (delivered) sent++
return delivered
}
}
生成代码仅作示例,不代表任何特定模型