เขียน code ด้วยภาษา Kotlin ไปเรื่อย ๆ
ก็มักจะเจอ keyword class และ object อยู่ตลอด
บางครั้งก็ใช้ class keyword
บางครั้งก็ใช้ object keyword
มาดูกันหน่อยสิ

เมื่อไปดูในเอกสารจาก Kotlin พบว่า

Object นั้นมีทุกอย่างคล้ายกับ class มาก ๆ
แต่ว่าจะมีเพียง instance เดียวเท่านั้นที่ถูกสร้างขึ้นมาเมื่อถูกเรียกใช้ครั้งแรก (Lazy instantiation)
ถ้า object นี้ไม่ถูกเรียกใช้งาน จะไม่ทำการสร้าง instance ขึ้นมา
และเป็น thread-safe โดย default อยู่แล้ว
มันคือ Singleton pattern นั่นเอง

เทียบกับภาษา Java ได้ดังนี้

เมื่อแปลงมาเป็นภาษา Kotlin เขียนแค่นี้พอไม่ต้องเยอะ

ยังไม่พอนะ เมื่อใช้ไปเรื่อย ๆ ก็จะเจอ Companion object อีก

ซึ่งจะถูกประกาศหรือใช้ภายใน class ด้วย keyword companion
มันก็คือ การประกาศ static field/method ใน Java นั่นเอง
ถ้าเป็น method ก็ออกแนว Factory pattern อีกแล้ว

และบ่อยครั้งเรานำ object expression มาใช้สำหรับสร้าง Annonymous class อีกด้วย
หรือนำมาใช้สำหรับการสร้าง single instance ของ object ง่าย ๆแบบนี้ได้อีก
ซึ่งอำนวยความสะดวกไม่ต้องไปสร้าง class หรือ data class
มองว่าเป็น structure ของข้อมูลไปเลย

ถึงตรงนี้น่าจะพอทำให้เข้าใจขึ้นมาบ้างแล้ว

ขอให้สนุกกับการ coding ครับ

Tags: