Câu hỏi phỏng vấn Kotlin
Câu hỏi

Làm thế nào để bạn tạo một `sin...

Câu trả lời

Trong Kotlin, việc tạo một singleton thông thường được thực hiện thông qua một object. Tuy nhiên, object trong Kotlin không hỗ trợ trực tiếp việc khởi tạo với các tham số. Để tạo một singleton có thể nhận tham số, bạn cần sử dụng một kỹ thuật khác, thường là thông qua một lớp thông thường kết hợp với một pattern để đảm bảo rằng chỉ có một thể hiện của lớp đó được tạo ra. Một trong những cách phổ biến để thực hiện điều này là sử dụng mẫu thiết kế "Singleton with parameters" với một companion object để quản lý thể hiện duy nhất.

Dưới đây là một ví dụ về cách bạn có thể tạo một singleton có tham số trong Kotlin:

Bước 1: Định nghĩa Lớp với Companion Object

Bạn tạo một lớp với một companion object. Companion object này sẽ chịu trách nhiệm tạo và quản lý thể hiện duy nhất của lớp này.

kotlin Copy
class Config private constructor(val url: String, val timeout: Int) {
    companion object {
        @Volatile private var INSTANCE: Config? = null

        fun getInstance(url: String, timeout: Int): Config {
            return INSTANCE ?: synchronized(this) {
                INSTANCE ?: Config(url, timeout).also {
                    INSTANCE = it
                }
           ...
senior

senior

Gợi ý câu hỏi phỏng vấn

middle

Trong Kotlin, hằng số nên được tạo ra như thế nào?

expert

Sự khác biệt giữa launch/joinasync/await trong Kotlin coroutines là gì?

senior

Hãy giải thích về lazy initialization trong Kotlin?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào