Bài giảng Mẫu thiết kế hướng đối tượng và ứng dụng: Mẫu Strategy - Nguyễn Minh Huy
lượt xem 3
download
Bài giảng "Mẫu thiết kế hướng đối tượng và ứng dụng: Mẫu Strategy" cung cấp cho người học các kiến thức: Ngữ cảnh mẫu Strategy, hướng tiếp cận mẫu Strategy, cài đặt, các vấn đề xung quanh. Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Mẫu thiết kế hướng đối tượng và ứng dụng: Mẫu Strategy - Nguyễn Minh Huy
- Mẫu Strategy GV. Nguyễn Minh Huy Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 1
- Mẫu Strategy Ngữ cảnh cảnh:: Bài toán toán:: Sắp xếp mảng mảng.. Thanh toán hóa đơn đơn.. Vẽ một loại hình hình.. Mục tiêu tiêu:: Có nhiều thuật toán xử lý cho một phương thức thức.. Có thể lựa chọn thuật toán khi chương trình thực hiện hiện.. Có thể thay đổi thuật toán lựa chọn nhiều lần. lần. Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 2
- Mẫu Strategy Hướng tiếp cận cận:: Nhiều thuật toán xử lý khác nhau nhau:: Tạo lớp thuật toán tổng quát quát.. Tạo lớp kế thừa cho mỗi thuật toán cụ thể. thể. Lựa chọn thuật toán xử lý cho phương thức thức:: Trang bị đối tượng thuật toán cho lớp chứa phương thức thức.. Khi gọi phương thức thức,, nhờ đối tượng thuật toán thực hiện hiện.. Thay đổi thuật toán lựa chọn nhiều lần: lần: Cho phép cập nhật đối tượng thuật toán đã trang bị. bị. Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 3
- Mẫu Strategy Hướng tiếp cận cận:: Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 4
- Mẫu Strategy Cài đặt đặt:: class Receipt class Payment { { private: public: Payment* m_pay m_pay;; virtual double calculate() = 0; public: }; double calculate(); }; class CashPayment CashPayment:: public Payment { public: double Receipt::calculate() double calculate() calculate();; { }; return m_pay m_pay-->calculate() >calculate();; } class CreditCardPayment CreditCardPayment:: public Payment { public: double calculate() calculate();; }; Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 5
- Mẫu Strategy Các vấn đề xung quanh quanh:: Cập nhật đối tượng thuật toán bằng cách nào nào? ? Khởi tạo thông qua constructor. Chỉ lựa chọn 1 lần, lần, không thể thay đổi lần sau sau.. Tạo phương thức truy xuất (get/set). Phải lưu đối tượng thuật toán toán.. Cập nhật thông qua tham số phương thức thức.. class Receipt class Receipt class Receipt { { { private: private: public: Payment* m_pay m_pay;; Payment* m_pay m_pay;; double calculate(Payment* calculate(Payment* pay); pay); public: public: }; Receipt(Payment* pay); setPay(Payment* setPay (Payment* pay); double calculate(); double calculate(); }; }; Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 6
- Mẫu Strategy Các vấn đề xung quanh quanh:: Phân biệt Strategy và Template Method: Tiêu chí Strategy Template Method Ý tưởng - Thay đổi toàn bộ thuật toán - Thay đổi một vài bước trong xử lý phương thức. thuật toán xử lý phương thức. - “Thay da đổi thịt”. - Giữ nguyên khung sườn. Cài đặt - Tách biệt cây thuật toán. - Sử dụng inheritance trên - Sử dụng composition đối chính lớp chứa phương thức. tượng thuật toán. Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 7
- Mẫu Strategy Các vấn đề xung quanh quanh:: Phân biệt Strategy và kế thừa trực tiếp tiếp:: Giống nhau nhau:: đều có thể thay đổi xử lý của phương thức thức.. Tiêu chí Strategy Kế thừa trực tiếp Tính chất - Quan hệ HAS-A - Quan hệ IS-A (giữa Context và Algorithm) (giữa Context và Algorithm) Cài đặt - Tách biệt cây thuật toán. - Override lại phương thức. “Bùng nổ” lớp kế thừa. Linh động - Lựa chọn thuật toán động - Lựa chọn thuật toán cứng (khi nào cần). (khi tạo lớp Context). - Thay đổi lựa chọn nhiều lần. Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 8
- Mẫu Strategy Các vấn đề xung quanh quanh:: Hạn chế chế:: Tách biệt cây thuật toán toán.. Không thể truy xuất thành phần private lớp Context. class Receipt class CashPayment CashPayment:: public Payment { { private: public: Payment* m_pay m_pay;; double calculate() calculate();; double m_tax m_tax;; }; public: double calculate(); double CashPayment CashPayment::calculate() ::calculate() }; { double Receipt::calculate() // Làm sao truy xuất m_tax m_tax?? ?? { } return m_pay m_pay-->calculate() >calculate();; } Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 9
- Mẫu Strategy Các vấn đề xung quanh quanh:: Hạn chế chế:: Cho phép thay đổi thuật toán xử lý. lý. Tạo nhiều đối tượng thuật toán toán.. Tốn tài nguyên hệ thống thống.. Áp dụng Singleton!! Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 10
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Thiết kế phần mềm - PGS.TS. Huỳnh Xuân Hiệp
299 p | 162 | 26
-
Bài giảng môn Thiết kế web - Phần 4: MacroMedia Dreamweaver
58 p | 124 | 17
-
Bài giảng Lập trình hướng đối tượng - Msc. Tran Son Hai
418 p | 52 | 7
-
Bài giảng Các mẫu thiết kế hướng đối tượng: Chương 5 - TS. Nguyễn Văn Hiệp
68 p | 63 | 7
-
Bài giảng Các mẫu thiết kế hướng đối tượng: Chương 1 - TS. Nguyễn Văn Hiệp
46 p | 71 | 5
-
Bài giảng Các mẫu thiết kế hướng đối tượng: Chương 8 - TS. Nguyễn Văn Hiệp
43 p | 61 | 4
-
Bài giảng Các mẫu thiết kế hướng đối tượng: Chương 7 - TS. Nguyễn Văn Hiệp
30 p | 52 | 4
-
Bài giảng Các mẫu thiết kế hướng đối tượng: Chương 6 - TS. Nguyễn Văn Hiệp
62 p | 63 | 4
-
Bài giảng Các mẫu thiết kế hướng đối tượng: Chương 4 - TS. Nguyễn Văn Hiệp
21 p | 54 | 4
-
Bài giảng Các mẫu thiết kế hướng đối tượng: Chương 3 - TS. Nguyễn Văn Hiệp
24 p | 55 | 4
-
Bài giảng Các mẫu thiết kế hướng đối tượng: Chương 2 - TS. Nguyễn Văn Hiệp
28 p | 59 | 4
-
Bài giảng Mẫu thiết kế hướng đối tượng và ứng dụng: Tổng quan về mẫu thiết kế hướng đối tượng - Nguyễn Minh Huy
14 p | 50 | 3
-
Bài giảng Mẫu thiết kế hướng đối tượng và ứng dụng: Mẫu Singleton - Nguyễn Minh Huy
10 p | 43 | 3
-
Bài giảng Mẫu thiết kế hướng đối tượng và ứng dụng: Mẫu template method - Nguyễn Minh Huy
8 p | 43 | 3
-
Bài giảng Mẫu thiết kế hướng đối tượng và ứng dụng: Nhóm mẫu khởi tạo - Nguyễn Minh Huy
3 p | 26 | 2
-
Bài giảng Mẫu thiết kế hướng đối tượng và ứng dụng: Nhóm mẫu cấu trúc - Nguyễn Minh Huy
4 p | 37 | 2
-
Bài giảng Mẫu thiết kế hướng đối tượng và ứng dụng: Nhóm mẫu hành xử - Nguyễn Minh Huy
3 p | 59 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn