Singleton Pattern

Singleton Pattern: Ensure that only one instance of a class is created and provide a global point of access to it.

Nhầm hạn chế khởi tạo nhiều đối tượng, chỉ khởi tạo 1 đối tượng duy nhất.

Có rất nhiều trường hợp đế ứng dụng Singleton Pattern như là: dialog Find trong Microsoft Word hay trong Notepad++, khi nhấn Ctrl + F thì chỉ hiện ra duy nhất 1 dialog Find ( chứ không thể mỗi lần nhấn Ctrl + F là new ra 1 dialog Find ) mặc dù mở rất nhiều file document.

Những keyword của Singleton Pattern:
– private constructor ( không dc khởi tạo đối tượng)
– Dùng biến và method kiểu Static.

public final class QuachSon {
public static final QuachSon INSTANCE = new QuachSon();

private QuachSon() { // prevent instance

}

public static QuachSon getInstance() {
return INSTANCE;
}

}

KO THỂ: QuachSon son = new QuachSon();

PHẢI LÀ: QuachSon a = QuachSon.getInstance();

Khi bạn sử dụng API của java, gọi Class.getInstance(), mà không thể new đối tượng đó dc. Đó chính là áp dụng Singleton Pattern.

Serialization
If you serialize a singleton and then deserialize it twice, you will have two instances of your singleton, unless you implement the readResolve() method, like this:

public final class QuachSon implements java.io.Serializable {
public static final QuachSon INSTANCE = new QuachSon();

private QuachSon() { // prevent instance

}

public static QuachSon getInstance() {
return INSTANCE;
}

private Object readResolve() {
return INSTANCE;
}

}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s