Singleton Patterns
Singleton Patterns
Singleton คือ การทำให้มี object เดียวเท่านั้นในระบบ ยกตัวอย่าง เช่น
class Env{
static Env env;
//Prevent new instance
private Env(){
}
public static Env getInstance(){
if(env ==null)
return new Env();
}
}
class Test{
public static void main(String[] args){
Env env = Env.getInstance();
Env env2 = Env.getInstance();
// จะสังเกตว่า Object ที่ถูกสร้างขึ้นจะเป็น Instance เดียวกัน
}
}
ประโยขน์ของ Singleton class ที่ใช้บ่อยๆไม่จำเป็นที่จะต้องสร้างขึ้นมาทุกครั้งที่มีการใช้งาน ทำให้ระบบมีประสิทธิภาพ(performance)ที่ดีขึ้น
แต่ก็มีคำถามว่่า ต่างจาก static method อย่างไร
static method จะเก็บ state หรืออ้างถึงออปเจกอื่นที่ไม่ใช่ static ด้วยกันไม่ได้
ในขณะที่ถ้าเป็น singleton object จะสามารถจัดการกับออปเจกอื่นได้ครับ