Báo cáo môn Lập trình hướng đối tượng - Đề tài: Abstract Factory Pattern - Phan Đức Hậu

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN – ĐHQG-HCM  
KHOA CÔNG NGHỆ THÔNG TIN  
MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG  
BÁO CÁO NỘI DUNG TÌM HIỂU DESIGN PATTERN  
ĐỀ TÀI  
Abstract Factory  
Pattern  
Giảng viên hướng dẫn: Thầy Hồ Tuấn Thanh  
Nhóm thực hiện: Clould 9 (C9)  
Lớp: 17CL  
Danh sách nhóm:  
Mã số sinh  
Đánh  
giá  
Tên thành viên  
Công việc  
viên  
-Nhóm trưởng  
Phan Đức Hậu  
1760305  
-Tìm kiếm và tổng hợp nội dung.  
100%  
- Lên nội dung công việc, phân công công việc.  
-Tìm kiếm và tổng hợp nội dung.  
-Biên tập slide thuyết trình.  
Trần Văn Hưng  
Nguyễn Khương  
1760323  
1760342  
100%  
100%  
-Tìm kiếm và tổng hợp nội dung.  
- Biên tập file world báo cáo.  
Nội dung:  
1. Ví dụ/bài toán đặt ra:  
Viết chương in hình tròn và hình vuông ra màn hình theo hai chế độ MỘT  
là 2D, HAI là 3D.  
2. Cách giải không dùng pattern.  
a. class diagram:  
b.Source code (diễn đạt bằng hình ảnh, có gửi file mã nguồn  
riêng đi kèm)  
- B1: Tạo base class Shape và các subclass CircleOf2D, CircleOf3D,  
SquareOf2D, SquareOf3D  
- B2: Tạo class DrawApp thực hiện chức năng vẽ hình  
- B3: Viết hàm main và chạy chương trình  
Viết hàm main và chạy thử ở chế độ 2D  
Viết hàm main và chạy thử ở chế độ 3D  
3. Nhược điểm cách giải không dùng pattern.  
- Tạo đối tượng trực tiếp và việc phủ hết các đối tượng có thể được tạo gây  
sự nhập nhằng (Các câu lệnh if).  
- Việc chuyển đổi giữa nhóm các đối tượng bất tiện, không linh hoạt, không  
đảm bảo sự tương thích của nhóm các đối tượng được tạo ra. Ví dụ lỗi:  
Hoặc  
4. Giới thiệu pattern  
a. Định nghĩa:  
Abstract Factory Pattern là pattern thuộc nhóm khởi tạo. Bằng cách tạo một  
Interface cho phép tạo một họ các đối tượng liên quan với nhau thông qua class  
con mà không cần chỉ rõ chính xác các đối tượng cụ thể nào sẽ được tạo ra.  
b.Class Diagram:  
c. Giải thích class diagram:  
- AbstractFactory là Interface cho việc tạo một đối tượng  
- ConcreteFactory là lớp con sẽ quyết định nhóm đối tượng nào được tạo  
(nhóm đối tượng loại 1 hay 2).  
• ConcreteFactory1 tạo ProductA1, ProductB1  
• ConcreteFactory2 tạo ProductA2, ProductB2  
5. Cách giải nếu dùng pattern: class diagram &  
source code:  
a. Class diagram:  
b.Source code (diễn đạt bằng hình ảnh, có gửi file mã nguồn  
riêng đi kèm)  
- B1: Khai báo base class Circle và hai subclass CircleOf2D và CircileOf3D  
- B2: Tương tự khai báo base class Square và hai subclass SquareOf2D và  
SquareOf3D.  
- B3: Khai báo base class DrawApp và 2 subclass DrawAppOf2D và  
DrawAppOf3D  
- B4: Viết hàm main và chạy chương trình  
Viết hàm main và chạy thử ở chế độ 2D  
Viết hàm main và chạy thử ở chế độ 3D  
6. Một số bài toán khác cũng dùng pattern  
Chương trình thiết kế giao diện đồ họa người dùng (GUI). Trong đó có các  
đối tượng đồ họa như button, checkbox, textbox, … Và mỗi đối tượng đồ họa  
sẽ phân thành 2 loại là thuộc hệ điều hành windows và macOS .  
Chương trình bán hang thời trang. Trong đó có các loại sản phẩn như quần  
thể thao, áo thể thao, áo khoác, giày, mũ, … Và mỗi sản phẩm nhiều loại do  
nhiều hãng sản xuất như Adidas, Nike, Puma, …  
7. Ưu điểm và nhược điểm của pattern  
a. Ưu điểm:  
- Duy trì, đảm bảo tính linh hoạt, tương thích trong việc tạo nhóm các loại  
đối tượng liên quan nhau.  
- Chuyển đổi giữa các nhóm đối tượng cũng dễ dàng và đảm bảo tính  
tương thích.  
- Đóng gói việc tạo đối tượng, đối tượng được tạo một cách gián tiếp.  
- Che giấu các xử lí logic liên quan tới nhóm các đối tượng liên quan nhau.  
b.Nhược điểm:  
- Cài đặt phức tạp, xây dựng nhiều class.  
- Gặp vấn đề khi có nhu cầu mở rộng các đối tượng trong nhóm hay thêm  
nhóm đối tượng mới (khó khăn trong việc mở rộng).  
- Một thay đổi nhỏ của một trong các Factory dẫn đến thay đổi tất cả các  
Factory còn lại.  
8.Bài tập về pattern  
a. Bài 1 (Nguyễn Khương)  
- Viết các class để thực hiện chức năng in ra màn hình thông tin các sản  
phẩm. Các sản phẩm bao gồm điện thoại thông minh, máy tính bảng,  
laptop. Mỗi sản phẩm có hai hãng sản xuất là Apple và Samsung. Có 3 chế  
độ in thông tin các sản phẩm là: sản phẩm của Apple, sản phẩm của  
Samsung và tất cả.  
- Thông tin của các sản phẩm gồm: tên sản phẩm, giá bán, kích thước, màu  
sắc, ngày sản xuất,…  
- Vẽ UML cho các class đó.  
b.Bài 2 (Phan Đức Hậu)  
- Viết các class để thực hiện chức năng tính tiền phí vận chuyển. Tiền phí  
vận chuyển phụ thuộc vào độ dài quãng đường, phương tiện vận chuyển  
và công ty vận chuyển. Có hai loại hình vận chuyển là xe ôm và taxi thuộc  
3 công ty vận chuyển là grab, uber và goViet.  
- Vẽ UML cho các class đó.  
c. Bài 3 (Trần Văn Hưng)  
- Viết các class để thực hiện các phép tính cộng trừ nhân chia. Có hai đối  
tượng thực hiện các phép tính đó là số nguyên nhị phân và phân số.  
- Vẽ UML cho các class đó.  
HẾT   
Cảm ơn thầy đã xem bài báo cáo  
doc 15 trang myanh 24460 Free
Bạn đang xem tài liệu "Báo cáo môn Lập trình hướng đối tượng - Đề tài: Abstract Factory Pattern - Phan Đức Hậu", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • docbao_cao_mon_lap_trinh_huong_doi_tuong_de_tai_abstract_factor.doc
  • cppVí dụ có dùng Abstract Factory Pattern.cpp
  • cppVí dụ có dùng Factory Method Pattern.cpp
  • cppVí dụ không dùng Abstract Factory Pattern.cpp
  • cppVí dụ không dùng Factory Method Pattern.cpp
  • pptxSeminar Factory Method Pattern.pptx
  • rarProject.rar
  • docxBài tập cho hai pattern.docx