Singleton pattern

Đôi khi, bạn phải giải quyết trường hợp làm thế nào để khởi tạo duy nhất 1 và chỉ 1 đối tượng dẫn xuất từ một lớp.

Singleton pattern sẽ giải quyết vấn đề này. Nó là 1 design pattern đơn giản nhất bao gồm 1 lớp, lớp này đảm bảo sẽ khởi tạo chỉ một đối tượng và cung cấp khả năng truy xuất mức Global tới đối tượng đó. Có nghĩa là đối tượng có thể được sử dụng ở bất kỳ nơi nào trong ứng dụng mà không cần phải khởi tạo Contructor.

Mục tiêu

– Đảm bảo chỉ một đối tượng được khởi tạo từ lớp
– Cung cấp khả năng truy xuất mức Global (global point of access) tới đối tượng đó.

Cài đặt

Singleton Class bao gồm :
-Static member
-Private Constructor
-Và một public static method (method này sẽ reference (trỏ) đến Static member ở trên.

class Singleton
{
private static Singleton m_instance;
private Singleton()
{

}

public static synchronized Singleton getInstance()
{
if (m_instance == null)
m_instance = new Singleton();

return m_instance;
}

public void doSomething()
{

}
}

rong đoạn mã trên, phương thức getInstance() đảm bảo rằng chỉ duy nhất một đối tượng dẫn xuất từ lớp Singleton được khởi tạo. Contructor (được overide thành private) chỉ được truy xuất bên trong lớp Singleton, điều này đảm bảo rằng phương thức getInstance() là điểm duy nhất có thể khởi tạo đối tượng.

Thêm vào đó, getInstance() cung cấp global point of access đến đối tượng. Bạn có thể sử dụng theo cách dưới đây:

Singleton.getInstance().doSomething();

Về tieuyeuit
Lập trình viên Asp.net Tôi chia sẻ một,bạn chia sẻ một và chúng ta có rất nhiều!

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: