Mẫu đơn chiếc đảm bảo một lớp chỉ có một thể hiện duy nhất được tạo ra và đồng thời cung cấp một truy cập toàn cục đến đối tượng được tạo ra.
Việc sử dụng mẫu đơn chiếc mang lại nhiều tiện ích: Quản lý việc truy cập tốt hơn; cho phép cải tiến các tác vụ và các thể hiện do mẫu có thể được kế thừa và tùy biến lại thông qua một thể hiện của lớp con; quản lý số lượng thể hiện của một lớp, không nhất thiết chỉ có một thể hiện mà có số thể hiện xác định; khả chuyển hơn so với việc dùng một lớp có thuộc tính tĩnh, vì việc dùng lớp tĩnh chỉ có thể sử dụng một thể hiện duy nhất, còn mẫu đơn chiếc cho phép quản lý các thể hiện tốt hơn và tùy biến theo điều kiện cụ thể.
- 26 –
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trong đó:
Singleton: cung cấp một phương thức tạo private, duy trì một thuộc tính tĩnh để tham chiếu đến một thể hiện của lớp Singleton này và nó cung cấp thêm một phương thức tĩnh trả về thuộc tính tĩnh này.
* Phạm vi ứng dụng mẫu
Ứng dụng rõ nhất của mẫu đơn chiếc có thể thấy trong dịch vụ Web khi triệu gọi các đối tượng từ xa. Ở đó đối tượng nằm trên server hoặc sẽ phục vụ chung cho
tất cả các ứng dụng khách (singleton) hoặc sẽ chỉ đáp ứng một ứng dụng khách riêng lẻ nào đó rồi tự bị phá hủy sau đó.
* Nhận xét
Chúng ta xét trường hợp có nhiều đối tượng có cùng chung một số tính chất nào đó được tạo ra ứng với mỗi một yêu cầu từ các đối tượng khách (client). Lúc này độ phức tạp sẽ tăng lên và ứng dụng sẽ chiếm dụng nhiều vùng nhớ hơn. Mẫu đơn chiếc là một giải pháp đặc biệt của mẫu chế tạo ở chỗ, đối tượng sinh ra là điểm truy cập toàn cục duy nhất đối với mọi chương trình gọi đến, hay nói một cách khác, tất cả các đối tượng khách gọi đến đều chia sẻ đối tượng được tạo ra.
- 27 –
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 2.6. Cấu trúc của mẫu Adapter Pattern