Bài giảng môn Phân tích & thiết kế phần mềm hướng đối tượng: Chương 5 - TS. Nguyễn Văn Hiệp
Số trang: 30
Loại file: pdf
Dung lượng: 210.09 KB
Lượt xem: 12
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 "Phân tích & thiết kế phần mềm hướng đối tượng - Chương 5: 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ời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng môn Phân tích & thiết kế phần mềm hướng đối tượng: Chương 5 - TS. Nguyễn Văn Hiệp Chương 5 Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng (Creational Patterns) 5.1 Tổng quát về nhóm mẫu “Creational” 5.2 Mẫu Abstract Factory 5.3 Mẫu Factory Method 5.4 Mẫu Prototype 5.5 Mẫu Builder 5.6 Mẫu Singleton 5.7 Kết chương Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương 5 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng Slide 1 5.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 tham khảo ₫ến các ₫ối tượng khác. Đoạn code khởi tạo giá trị cho các thuộc tính và tham khảo này phụ thuộc hoàn toàn vào sự hiện thực cụ thể của ₫ối tượng. Chúng ta cần tách ₫oạn code này khỏi code 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 quan tâ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ính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương 5 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng Slide 2 5.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ặt khởi tạo, quản lý và sử dụng ₫ối tượng. Chúng có thể cho phép client chủ ₫ộng trong việc xác ₫ịnh ₫ối tượng nào ₫ược tạo ra, ai tạ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 code client 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ính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương 5 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng Slide 3 5.2 Mẫu Abstract Factory Mụ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ủa cá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ượng cầ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ẫu AbstractFactory sẽ giúp chúng ta tạo ₫ối tượng mà không cần biết tên class cụ thể ₫ược dùng. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương 5 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng Slide 4 5.2 Mẫu Abstract Factory Thí 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ình multi-platform). Mỗi platform có một họ các class miêu tả các ₫ối tượng giao diện phổ dụng như TextBox, Button,… Giả sử các ₫ối tượ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ện nà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 ₫ồ class như sau : Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương 5 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng Slide 5
Nội dung trích xuất từ tài liệu:
Bài giảng môn Phân tích & thiết kế phần mềm hướng đối tượng: Chương 5 - TS. Nguyễn Văn Hiệp Chương 5 Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng (Creational Patterns) 5.1 Tổng quát về nhóm mẫu “Creational” 5.2 Mẫu Abstract Factory 5.3 Mẫu Factory Method 5.4 Mẫu Prototype 5.5 Mẫu Builder 5.6 Mẫu Singleton 5.7 Kết chương Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương 5 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng Slide 1 5.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 tham khảo ₫ến các ₫ối tượng khác. Đoạn code khởi tạo giá trị cho các thuộc tính và tham khảo này phụ thuộc hoàn toàn vào sự hiện thực cụ thể của ₫ối tượng. Chúng ta cần tách ₫oạn code này khỏi code 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 quan tâ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ính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương 5 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng Slide 2 5.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ặt khởi tạo, quản lý và sử dụng ₫ối tượng. Chúng có thể cho phép client chủ ₫ộng trong việc xác ₫ịnh ₫ối tượng nào ₫ược tạo ra, ai tạ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 code client 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ính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương 5 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng Slide 3 5.2 Mẫu Abstract Factory Mụ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ủa cá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ượng cầ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ẫu AbstractFactory sẽ giúp chúng ta tạo ₫ối tượng mà không cần biết tên class cụ thể ₫ược dùng. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương 5 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng Slide 4 5.2 Mẫu Abstract Factory Thí 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ình multi-platform). Mỗi platform có một họ các class miêu tả các ₫ối tượng giao diện phổ dụng như TextBox, Button,… Giả sử các ₫ối tượ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ện nà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 ₫ồ class như sau : Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương 5 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng Slide 5
Tìm kiếm theo từ khóa liên quan:
Phân tích phần mềm hướng đối tượng Phần mềm hướng đối tượng Thiết kế phần mềm hướng đối tượng Thiết kế phần mềm Khởi tạo đối tượng Creational PatternsTài liệu có liên quan:
-
Đề cương môn học Phân tích thiết kế phần mềm
143 trang 184 0 0 -
Giáo trình tóm tắt Công nghệ phần mềm
149 trang 178 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 175 0 0 -
Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - Phần mềm Quản lý kết hôn
17 trang 168 0 0 -
Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - Quản lý hồ sơ bệnh án của 1 khoa
20 trang 145 0 0 -
Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - QUẢN LÝ SỐ SÁCH CÔNG TY CỔ PHẦN VẬN TẢI HÀ TIÊN
106 trang 93 0 0 -
Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - HỆ THỐNG HOẠT ĐỘNG CỦA MỘT CÔNG TY PHÁT HÀNH SÁCH
36 trang 92 0 0 -
42 trang 59 2 0
-
Tiểu luận Kiến trúc và thiết kế phần mềm: Khảo sát các trang thương mại điện tử
48 trang 54 0 0 -
Bài giảng Công nghệ phần mềm: Giới thiệu môn học - PGS. TS. Phạm Ngọc Hùng
13 trang 51 0 0