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 đủ
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:
bai_giang_lap_trinh_huong_doi_tuong_chuong_8_khuon_mau_templ.pdf

