Proactive Units for Practical Applications
เคยเขียน constructor ของ Class ใน java เป็น private มั๊ย
อย่างที่เรารู้ กันว่า การสร้าง instance ของ class ต่างๆ ในภาษา Java นั้น จะต้องมีการเรียก constructor ด้วย ปกติเราจึงมักจะประกาศ constructor ให้เป็น public หรือ defalut ไว้
แต่มี รูปแบบการออกแบบ อย่างหนึ่งที่เรียกว่า Singleton Pattern ที่เราจะประกาศ constructor ของ class เป็น private. Singleton Pattern เป็นรูปแบบการออกแบบ class ที่เราต้องการให้มีการสร้าง Instance ของ class นี้ ได้เพียง Instance เดียวในโปรแกรม มักใช้กับ class ที่ทำหน้าที่ในการควบคุมต่างๆ เพราะบางครั้งหาก มีการเผลอสร้าง Instance หลายตัว อาจทำให้โปรแกรมทำงานผิดพลาดได้
Singleton Pattern มีเทคนิคอยู่ว่า ให้เราประกาศ constructor ของ class เป็น private นั่นหมายความว่า ผู้ใช้ภายนอกจะไม่สามารถทำการ ”new” class นี้ได้ ถ้าหากต้องการจะใช้งาน Instance ของ class นี้ จะต้องทำการขอ ด้วยการเรียก static method ของ class ซึ่งจะส่ง reference ของ Instance ซึ่ง class ได้สร้างเตรียมไว้ ออกมาให้
Example
class MyLove
{
private static final MyLove m = new MyLove();
private MyLove() {
}
public static MyLove getInstance() {
return m;
}
}
Singleton Pattern ทำให้เรามั่นใจได้ว่า ภายในโปรแกรมของเรามี Instance ของ class MyLove เพียงตัวเดียวเท่านั้น
Last 5 posts by Fiat
- Text File Encoding - January 6th, 2010
- String in Java มีอะไรมากกว่าที่คิด - November 16th, 2009
- Swap - July 11th, 2009
