Bài giảng Các mẫu thiết kế hướng đối tượng: Chương 7 - TS. Nguyễn Văn Hiệp
Số trang: 30
Loại file: pdf
Dung lượng: 1.87 MB
Lượt xem: 11
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Các mẫu thiết kế phục vụ khởi tạo đối tượng (Creational Patterns)" cung cấp cho người học các kiến thức: Tổng quát về nhóm mẫu “Creational”, mẫu Abstract Factory, mẫu Factory Method, mẫu Prototype, mẫu Builder, mẫu Singleton. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Các mẫu thiết kế hướng đối tượng: Chương 7 - TS. Nguyễn Văn HiệpChương 7Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng(Creational Patterns)7.1 Tổng quát về nhóm mẫu “Creational”7.2 Mẫu Abstract Factory7.3 Mẫu Factory Method7.4 Mẫu Prototype7.5 Mẫu Builder7.6 Mẫu Singleton7.7 Kết chươngKhoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Các mẫu thiết kế hướng ₫ối tượngChương 7 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 17.1 Tổng quát về nhóm mẫu “Creational”Đối tượng thường chứa nhiều thuộc tính dữ liệu và nhiều thamkhảo ₫ến các ₫ối tượng khác. Đoạn code khởi tạo giá trị cho cácthuộc tính và tham khảo này phụ thuộc hoàn toàn vào sự hiệnthực cụ thể của ₫ối tượng. Chúng ta cần tách ₫oạn code này khỏicode của client sử dụng ₫ối tượng.Thường client muốn tạo ₫ối tượng phức hợp mà không cần quantâm ₫ến các thông tin cụ thể chi tiết sau : Đối tượng phức hợp thuộc class cụ thể nào. Nó chứa các loại ₫ối tượng con nào, số lượng ra sao. Mối quan hệ giữa các ₫ối tượng con như thế nào.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Các mẫu thiết kế hướng ₫ối tượngChương 7 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 27.1 Tổng quát về nhóm mẫu “Creational”Các mẫu thiết kế “Creational” sẽ giúp code client linh ₫ộng về mặtkhởi tạo, quản lý và sử dụng ₫ối tượng. Chúng có thể cho phépclient chủ ₫ộng trong việc xác ₫ịnh ₫ối tượng nào ₫ược tạo ra, aitạo ra ₫ối tượng ₫ó, cách thức và thời ₫iểm khởi tạo ₫ối tượng ₫ó.Đặc ₫iểm nổi bật của các mẫu thiết kế “creational” là ₫oạn codeclient cần sử dụng ₫ối tượng không trực tiếp sinh ra ₫ối tượng mànhờ các phần tử trung gian ₫ể tăng ₫ộ linh ₫ộng, tối thiểu hóa sựphụ thuộc vào các class ₫ối tượng cụ thể.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Các mẫu thiết kế hướng ₫ối tượngChương 7 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 37.2 Mẫu Abstract FactoryMục tiêu :Cung cấp cho Client 1 interface gồm tập tác vụ khởi tạo các₫ối tượng ₫ược dùng trong Client nhưng che dấu mọi chi tiết về₫ối tượng ₫ược tạo ra, thí dụ như thuộc class cụ thể nào…Một trong các mục tiêu của việc viết code ứng dụng là phải cótính tổng quát cao và ₫ộ ₫ộc lập cao với chi tiết hiện thực củacác ₫ối tượng mà nó dùng. Một trong các phương án ₫ể ₫ạt₫ược mục tiêu trên là không dùng lệnh new ₫ể tạo ra ₫ối tượngcần dùng vì nếu dùng lệnh new thì phải xác ₫ịnh tên class cụthể và như vậy sẽ phụ thuộc vào class này. MẫuAbstractFactory sẽ giúp chúng ta tạo ₫ối tượng mà không cầnbiết tên class cụ thể ₫ược dùng.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Các mẫu thiết kế hướng ₫ối tượngChương 7 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 47.2 Mẫu Abstract FactoryThí dụ về việc dùng mẫu Abstract factory :Ta muốn viết chương trình GUI (dùng giao diện ₫ồ họa trực quan)có khả năng chạy trên nhiều platform khác nhau (chương trìnhmulti-platform). Mỗi platform có một họ các class miêu tả các ₫ốitượng giao diện phổ dụng như TextBox, Button,… Giả sử các ₫ốitượng giao diện cùng chức năng trên các platform khác nhau hỗtrợ cùng interface thống nhất (nếu không ta dùng mẫu Adapter ₫ểcó ₫ược kết quả này). Việc sử dụng cụ thể họ các class giao diệnnào chỉ biết khi chương trình bắt ₫ầu chạy. Để giải quyết vấn ₫ềtrên, cách tốt nhất là dùng mẫu AbstractFactory với lược ₫ồ classnhư sau :Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Các mẫu thiết kế hướng ₫ối tượngChương 7 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 5
Nội dung trích xuất từ tài liệu:
Bài giảng Các mẫu thiết kế hướng đối tượng: Chương 7 - TS. Nguyễn Văn HiệpChương 7Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng(Creational Patterns)7.1 Tổng quát về nhóm mẫu “Creational”7.2 Mẫu Abstract Factory7.3 Mẫu Factory Method7.4 Mẫu Prototype7.5 Mẫu Builder7.6 Mẫu Singleton7.7 Kết chươngKhoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Các mẫu thiết kế hướng ₫ối tượngChương 7 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 17.1 Tổng quát về nhóm mẫu “Creational”Đối tượng thường chứa nhiều thuộc tính dữ liệu và nhiều thamkhảo ₫ến các ₫ối tượng khác. Đoạn code khởi tạo giá trị cho cácthuộc tính và tham khảo này phụ thuộc hoàn toàn vào sự hiệnthực cụ thể của ₫ối tượng. Chúng ta cần tách ₫oạn code này khỏicode của client sử dụng ₫ối tượng.Thường client muốn tạo ₫ối tượng phức hợp mà không cần quantâm ₫ến các thông tin cụ thể chi tiết sau : Đối tượng phức hợp thuộc class cụ thể nào. Nó chứa các loại ₫ối tượng con nào, số lượng ra sao. Mối quan hệ giữa các ₫ối tượng con như thế nào.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Các mẫu thiết kế hướng ₫ối tượngChương 7 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 27.1 Tổng quát về nhóm mẫu “Creational”Các mẫu thiết kế “Creational” sẽ giúp code client linh ₫ộng về mặtkhởi tạo, quản lý và sử dụng ₫ối tượng. Chúng có thể cho phépclient chủ ₫ộng trong việc xác ₫ịnh ₫ối tượng nào ₫ược tạo ra, aitạo ra ₫ối tượng ₫ó, cách thức và thời ₫iểm khởi tạo ₫ối tượng ₫ó.Đặc ₫iểm nổi bật của các mẫu thiết kế “creational” là ₫oạn codeclient cần sử dụng ₫ối tượng không trực tiếp sinh ra ₫ối tượng mànhờ các phần tử trung gian ₫ể tăng ₫ộ linh ₫ộng, tối thiểu hóa sựphụ thuộc vào các class ₫ối tượng cụ thể.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Các mẫu thiết kế hướng ₫ối tượngChương 7 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 37.2 Mẫu Abstract FactoryMục tiêu :Cung cấp cho Client 1 interface gồm tập tác vụ khởi tạo các₫ối tượng ₫ược dùng trong Client nhưng che dấu mọi chi tiết về₫ối tượng ₫ược tạo ra, thí dụ như thuộc class cụ thể nào…Một trong các mục tiêu của việc viết code ứng dụng là phải cótính tổng quát cao và ₫ộ ₫ộc lập cao với chi tiết hiện thực củacác ₫ối tượng mà nó dùng. Một trong các phương án ₫ể ₫ạt₫ược mục tiêu trên là không dùng lệnh new ₫ể tạo ra ₫ối tượngcần dùng vì nếu dùng lệnh new thì phải xác ₫ịnh tên class cụthể và như vậy sẽ phụ thuộc vào class này. MẫuAbstractFactory sẽ giúp chúng ta tạo ₫ối tượng mà không cầnbiết tên class cụ thể ₫ược dùng.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Các mẫu thiết kế hướng ₫ối tượngChương 7 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 47.2 Mẫu Abstract FactoryThí dụ về việc dùng mẫu Abstract factory :Ta muốn viết chương trình GUI (dùng giao diện ₫ồ họa trực quan)có khả năng chạy trên nhiều platform khác nhau (chương trìnhmulti-platform). Mỗi platform có một họ các class miêu tả các ₫ốitượng giao diện phổ dụng như TextBox, Button,… Giả sử các ₫ốitượng giao diện cùng chức năng trên các platform khác nhau hỗtrợ cùng interface thống nhất (nếu không ta dùng mẫu Adapter ₫ểcó ₫ược kết quả này). Việc sử dụng cụ thể họ các class giao diệnnào chỉ biết khi chương trình bắt ₫ầu chạy. Để giải quyết vấn ₫ềtrên, cách tốt nhất là dùng mẫu AbstractFactory với lược ₫ồ classnhư sau :Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Các mẫu thiết kế hướng ₫ối tượngChương 7 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 5
Tìm kiếm theo từ khóa liên quan:
Thiết kế hướng đối tượng Bài giảng Thiết kế hướng đối tượng Các mẫu thiết kế hướng đối tượng Creational Patterns Thiết kế phục vụ khởi tạo đối tượng Khởi tạo đối tượngGợi ý tài liệu liên quan:
-
Bài giảng Phân tích và thiết kế hướng đối tượng - Đỗ Ngọc Như Loan
9 trang 242 0 0 -
Bài giảng Phân tích thiết kế hướng đối tượng: Chương 2 - Nguyễn Ngọc Duy
7 trang 224 0 0 -
69 trang 146 0 0
-
10 trang 66 0 0
-
Bài giảng Nhập môn công nghệ phần mềm: Chương 7 - Nguyễn Thanh Bình
77 trang 53 0 0 -
64 trang 46 3 0
-
Bài giảng Phân tích thiết kế hướng đối tượng: Giới thiệu - Trương Ninh Thuận
5 trang 35 0 0 -
GiỚI THIỆU CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
29 trang 28 0 0 -
Giáo trình về môn cấu trúc dữ liệu
304 trang 25 0 0 -
Nhập môn kỹ nghệ phần mềm - Chương 4
22 trang 25 0 0