Làm thế nào để bạn tạo một singleton có tham số trong Kotlin?
Làm thế nào để bạn tạo một singleton có tham số trong Kotlin?
Trong Kotlin, bạn không thể trực tiếp tạo một singleton có tham số vì singleton pattern đảm bảo chỉ có một instance duy nhất của một class và không cho phép constructor có tham số. Tuy nhiên, bạn có thể sử dụng một cách tiếp cận gián tiếp để đạt được điều tương tự thông qua việc sử dụng một companion object với một phương thức factory.
Dưới đây là một ví dụ về cách tạo một singleton có tham số trong Kotlin:
class Singleton private constructor(val context: Context) {
init {
// Khởi tạo với context ở đây
}
companion object {
@Volatile private var INSTANCE: Singleton? = null
fun getInstance(context: Context): Singleton {
return INSTANCE ?: synchronized(this) {
INSTANCE ?: Singleton(context).also { INSTANCE = it }
}
}
}
}
Trong ví dụ trên, Singleton
class có một private constructor nhận vào một tham số context
. Để tạo hoặc lấy instance của Singleton
, bạn sử dụng phương thức getInstance(context: Context)
được định nghĩa trong compa...
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào