Scala – Singleton và companion object

Singleton object

Singleton là một object được khai báo bằng cách sử dụng từ khoá object thay cho class. Không có object nào được yêu cầu để gọi các phương thức bên trong singleton object.

Trong Scala không có khái niệm static. Nên scala tạo một singleton object để cung cấp đầu vào cho chương trình của bạn chạy.

Nếu bạn không tạo một singleton object, thì code của bạn sẽ được biên dịch thành công nhưng sẽ không tạo ra bất kỳ đầu ra nào. Singleton object được truy cập global. Một Singleton object có thể extends các class hoặc trait.

object Singleton{  
    def main(args:Array[String]){  
        SingletonObject.hello()         // Không cần tạo object.  
    }  
}  
  
  
object SingletonObject{  
    def hello(){  
        println("Hello, This is Singleton Object")  
    }  
}

Kết qủa

Hello, This is Singleton Object

Companion object

Trong Scala, chúng ta có một class mà có tên giống với tên của singleton object, nó được gọi là companion class và singleton object được gọi là companion object.

Companion class và companion object của nó phải được định nghĩa trong cùng một file source code.

class ComapanionClass{  
    def hello(){  
        println("Hello, this is Companion Class.")  
    }  
}  
object CompanoinObject{  
    def main(args:Array[String]){  
        new ComapanionClass().hello()  
        println("And this is Companion Object.")  
    }  
}

Kết qủa

Hello, this is Companion Class.
And this is Companion Object.

 

You May Also Like

About the Author: Nguyen Dinh Thuc

Leave a Reply

Your email address will not be published.