ว่าด้วยเรื่อง “Singleton pattern” ใน Java
Singleton pattern ใน Java เป็นเรื่องที่ง่ายแต่บางทีก็อาจจะลืมได้ว่ามันเขียนอย่างไร วันนี้เลยอยากจะเขียนให้ตัวเองเข้าใจว่าอะไรคือ Singleton object จริงๆ ใน Java
Singleton pattern เป็นหนี่งใน design pattern ของ GoF (Gang of Four) อยู่ในกลุ่มของ Creational Design Pattern ซึ่งเป็น pattern ที่อธิบายว่าเราจะแก้ไขปัญหา recurring design เพื่อให้ design ของ Object-oriented software มีความ flexible และ reusable ทำให้ object มีความง่ายในการ implement, change, test และ reuse
คุณสมบัติของ Singleton pattern
- จำกัดการสร้าง instance หรือ instantiation ของคลาส เพื่อให้แน่ใจมีเพียง instace เดียวของคลาสที่ถูกสร้างใน JVM
- ต้องสามารถเข้าถึงได้สาธารณะสำหรับการเอา instance ของคลาส
สร้างคลาส SingleObject
มาดูว่ามัน implement อย่างไรดีกว่า ผมสร้างคลาส SingleObject ซึ่งเป็นคลาสที่สร้างตาม Singleton pattern ที่จะให้มีเพียง object เดียว
จะเห็นได้ว่า
- ภายในคลาสจะมีการสร้าง instance ของ ของคลาส SingleObject ขึ้นมาชื่อว่า instance (แต่จริงๆแล้วชื่ออะไรก็ได้ แต่ขอให้สร้าง object ขึ้นมาในคลาส)
- สร้าง constructor ให้ที access-modifier เป็น
private
เพื่อที่จะไม่ให้มีการสร้าง instace ของคสาสนี้ได้ - มี method
getInstance
ที่เป็นจุดที่ให้สามารถเอา instace ของคลาสได้
เอาไปใช้อย่าไร
เราไม่สมารถ instantiation คลาส Singleton
ได้แต่สามารถเรียก getInstance
เพื่อเอา instance ของคลาส Singleton
มาใช้งาน