642
Chương 16: Các giao diện và mẫu thông dụng
public string Subject { get { return subject; } }
}
9.
9.
Hi n th c m u Singleton
ệ
ự ẫ
Hi n th c m u Singleton
ệ
ự ẫ
Bạn cần bảo đảm chỉ có một thể hiện của một kiểu tồn tại ở một thời điểm cho
trước và thể hiện đó là khả-truy-xuất đối với tất cả các phần tử của ứng dụng.
Hiện thực kiểu này theo mẫu Singleton như sau:
•
Hiện thực một thành viên tĩnh
private
để giữ một tham chiếu đến thể hiện
của kiểu.
•
Hiện thực một thuộc tính tĩnh khả-truy-xuất-công-khai để cho phép truy
xuất chỉ-đọc đến thể hiện.
•
Hiện thực một phương thức khởi dựng
private
để mã lệnh không thể tạo
thêm các thể hiện của kiểu.
Trong tất cả các mẫu được biết đến, có lẽ mẫu Singleton được biết đến nhiều nhất và thường
được sử dụng nhất. Mục đích của mẫu Singleton là bảo đảm chỉ có một thể hiện của một kiểu
tồn tại ở một thời điểm cho trước và cho phép truy xuất toàn cục đến các chức năng của thể
hiện đó. Đoạn mã dưới đây trình bày một hiện thực của mẫu Singleton cho một lớp có tên là
SingletonExample
:
public class SingletonExample {
// Thành viên tĩnh dùng để giữ một tham chiếu đến thể hiện singleton.
private static SingletonExample instance;
// Phương thức khởi dựng tĩnh dùng để tạo thể hiện singleton.
// Một cách khác là sử dụng "Lazy Initialization" trong
// thuộc tính Instance.
static SingletonExample () {
instance = new SingletonExample();
}
// Phương thức khởi dựng private dùng để ngăn mã lệnh tạo thêm
// các thể hiện của kiểu singleton.
private SingletonExample () {}
// Thuộc tính public cho phép truy xuất đến thể hiện singleton.
public static SingletonExample Instance {