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
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:
bao_cao_mon_lap_trinh_huong_doi_tuong_de_tai_abstract_factor.doc
Ví dụ có dùng Abstract Factory Pattern.cpp
Ví dụ có dùng Factory Method Pattern.cpp
Ví dụ không dùng Abstract Factory Pattern.cpp
Ví dụ không dùng Factory Method Pattern.cpp
Seminar Factory Method Pattern.pptx
Project.rar
Bài tập cho hai pattern.docx

