Bài giảng "Mẫu thiết kế hướng đối tượng và ứng dụng: Mẫu Singleton" trình bày ngữ cảnh mẫu Singleton, hướng tiếp cận mẫu Singleton, cài đặt, các vấn đề xung quanh mẫu Singleton. nội dung chi tiết. | Bài giảng Mẫu thiết kế hướng đối tượng và ứng dụng: Mẫu Singleton - Nguyễn Minh Huy Mẫu Singleton GV. Nguyễn Minh Huy Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy 1 Mẫu Singleton Ngữ cảnh cảnh:: Bài toán toán:: Đối tượng Application trong ứng dụng dụng Đối tượng Cookies trên Web Server. Connection Pool. Mục tiêu tiêu:: Một lớp chỉ cần có MỘT thể hiện (instance). Mở rộng: rộng: một lớp chỉ cần có xác định N thể hiện hiện Các thể hiện này được chỉa sẻ trên toàn ứng dụng dụng Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy 2 Mẫu Singleton Hướng tiếp cận cận:: Chia sẻ thể hiện của lớp trên toàn ứng dụng dụng:: Dùng thuộc tính static để lưu một thể hiện của lớp. lớp. Đảm bảo lớp chỉ có MỘT thể hiện: hiện: Đưa constructor vào tầm vực private. Cung cấp hàm static để trả về thể hiện đã lưu. lưu. Điều khiển được quá trình khởi tạo đối tượng tượng Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy 3 Mẫu Singleton Cài đặt đặt:: class Cookies void main main() () { { private: Cookies *c1 = Cookies. getCookies() ();; static Cookies* m_cookies m_cookies;; // Thêm cookiesX Cookies();; Cookies() // Bớt cookiesX public: static Cookies* getCookies getCookies() () Cookies *c2 = Cookies. getCookies() ();; { // Thêm bớt cookiesX return m_cookies m_cookies;; } } }; // Khởi tạo thể hiện dùng chung chung Cookies* Cookies::m_cookies Cookies::m_cookies = new Cookies(); Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy 4 Mẫu Singleton Các vấn đề xung quanh quanh:: Khởi tạo trễ (lazy loading): Thuộc tính static được khởi