Bài giảng Lập trình hướng đối tượng - Chương 8: Khuôn mẫu (Template) - Mẫu thiết kế (Design patterns) - Nguyễn Sơn Tùng

Đại Học Quốc Gia Tp. Hồ Chí Minh  
Trường ĐH Khoa Học Tự Nhiên  
Khoa Công Nghệ Thông Tin  
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG  
CHƯƠNG 8  
KHUÔN MẪU (TEMPLATE)  
MẪU THIẾT KẾ (DESIGN PATTERNS)  
ThS: Phạm Nguyễn Sơn Tùng  
Email: pnstung@fit.hcmus.edu.vn  
Giới thiệu về Template  
1
2
3
4
Function & Class Template  
Giới thiệu về mẫu thiết kế Design Patterns  
Các mẫu thiết kế thông dụng  
Demo  
5
2
12/7/2019  
C07: Template & Design Patterns  
➢ Định nghĩa: Template (khuô n mẫu) là một từ khó a  
được sử dụng để tạo ra cá c phương thức cá c lớp với  
nhiều loại kiểu dữ liệu khá c nhau mà khô ng cần phải  
viết lại nhiều lần.  
3
12/7/2019  
C07: Template & Design Patterns  
➢ Class Template: Khuôn mẫu lớp cho phép tạo các lớp  
khuôn mẫu tổng quát, bao gói dữ liệu và xử lý dữ liệu  
vào cùng một nơi, sử dụng một cách tổng quát.  
➢ Function Template: Khuôn mẫu hàm cho phép định  
nghĩa các hàm/phương thức tổng quát dùng cho các  
kiểu dữ liệu tùy ý.  
➢ Other Template: Template specialization (Khuông mẫu  
chuyên mô n hó a).  
4
12/7/2019  
C07: Template & Design Patterns  
➢ Vector: Sử dụng như mảng động có thể dùng cho  
nhiều kiểu dữ liệu khác nhau.  
➢ Stack/Queue: Ngăn xếp và hàng đợi.  
➢ Array: Dùng tạo ra mảng với các phần tử có kiểu tuỳ ý.  
➢ List: Dùng tạo ra danh sách liên kết có kiểu tuỳ ý.  
5
12/7/2019  
C07: Template & Design Patterns  
template <class indetifier> class {……..}  
Tên biến  
từ khoá từ khoá  
Tên lớp  
6
12/7/2019  
C07: Template & Design Patterns  
7
1
n Patterns  
template <class indetifier> function_declaration;  
Tên biến  
từ khoá từ khoá  
Tên hàm  
8
12/7/2019  
C07: Template & Design Patterns  
9
12/7/2019  
C07: Template & Design Patterns  
10  
12/7/2019  
C07: Template & Design Patterns  
11  
12/7/2019  
C07: Template & Design Patterns  
➢ Bài tập: Cài đặt cấu trúc mảng 1 chiều (sử dụng  
template) với các chức năng sau:  
• Push (thêm phần tử vào đầu mảng)  
• Pop (lấy phần tử lớn thứ 2 của mảng ra)  
12  
12/7/2019  
C07: Template & Design Patterns  
➢ Bài tập: Cài đặt một template hàng đợi ưu tiên:  
• Push (thêm phần tử vào hàng đợi)  
• Pop (lấy phần tử lớn nhất từ hàng đợi ra)  
• Pop3 (lấy phần tử ở giá trị lớn thứ 3 ra)  
13  
12/7/2019  
C07: Template & Design Patterns  
➢ Bài tập: Cài đặt cấu trúc hàng đợi ưu tiên, gồm 2  
thành phần (Mã số, trọng số), những phần tử nào có  
trọng số lớn sẽ được ưu tiên nằm trên. Viết các phương  
thức sau:  
• Thêm phần tử vào hàng đợi.  
• Lấy phần từ đầu hàng đợi ra (lấy và xóa)  
• Đếm số lượng phần tử trong hàng đợi.  
14  
12/7/2019  
C07: Template & Design Patterns  
➢ Mẫu thiết kế (Design Patterns) là một giải pháp tổng  
thể cho các vấn đề trong thiết kế phần mềm theo  
hướng đối tượng. Nó không phải là chuẩn được quy  
định của bất kỳ ai.  
15  
12/7/2019  
C07: Template & Design Patterns  
➢ Tính uyển chuyển: 1 khuôn mẫu dùng để giải quyết một  
vấn đề nào đó. Nó không phải là thiết kế cuối cùng.  
➢ Dễ nâng cấp: Nâng cấp giao diện, tính năng phục vụ  
một công việc nào đó.  
➢ Dễ thay đổi: Thay đổi các theo yêu cầu của khách  
hàng.  
16  
12/7/2019  
C07: Template & Design Patterns  
➢ Design Patterns gồm 3 loại chính như sau:  
17  
12/7/2019  
C07: Template & Design Patterns  
➢ Creational Patterns: Khắc phục cá c vấn đề về khởi tạo đối tượng, hạn  
chế sự phụ thuộc nền tảng (gồm 5 mẫu Factory, Abstract Factory,  
Singleton, Prototype, Builder)  
18  
12/7/2019  
C07: Template & Design Patterns  
➢ Creational Patterns: Demo mẫu Singleton. Đây là mẫu thường gặp ở  
các bài toán khởi tạo đối tượng.  
➢ Sử dụng Singleton khi chúng ta muốn:  
• Đảm bảo rằng chỉ có một thể hiện của đối tượng riêng biệt tại  
một thời điểm bất kỳ.  
• Có thể quản lý số lượng thể hiện của một lớp trong giới hạn chỉ  
định.  
• Khi thể hiện duy nhất khả mở thông qua việc kế thừa, người  
dùng có thể sử dụng thể hiện kế thừa đó mà không cần thay đổi  
các đoạn mã của chương trình.  
19  
12/7/2019  
C07: Template & Design Patterns  
➢ Ví dụ: Xây dựng nhân vật Mario  
20  
12/7/2019  
C07: Template & Design Patterns  
Tải về để xem bản đầy đủ
pdf 27 trang myanh 32943 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 8: Khuôn mẫu (Template) - Mẫu thiết kế (Design patterns) - Nguyễn Sơn Tùng", để 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:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_chuong_8_khuon_mau_templ.pdf