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. | Mẫu Singleton GV. Nguyễn Minh Huy Mẫu thiết kế hướng đối tượng amp ứng dụng - Nguyễn Minh Huy https tailieudientucntt 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 amp ứng dụng - Nguyễn Minh Huy https tailieudientucntt 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 amp ứng dụng - Nguyễn Minh Huy https tailieudientucntt 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 amp ứng dụng - Nguyễn Minh Huy https tailieudientucntt 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 tạo khi truy xuất lớp lần đầu đầu. Sử dụng bộ nhớ không hiệu quả quả. Cách thức khởi tạo trễ trễ B1 Nếu chưa khởi tạo Khởi thể hiện dùng chung chung. B2 Trả về thể hiện dùng chung chung. Khởi tạo NULL. Cookies Cookies m_cookies Cookies m_cookies NULL Cookies Cookies getCookies Cookies getCookies if m_cookies m_cookies NULL m_cookies new Cookies return m_cookies .