NHỮNG NỘI DUNG CHÍNH• Đặt vấn đề • Tổng quan về template method • Thiết kế mẫu • Thực hiện mã lý thuyết mẫu template method • Ưu điểm và nhược điểm • Các mẫu liên quan • Ứng dụng templat
Trang 1THIẾT KẾ PHẦN MỀM HƯỚNG ĐỐI TƯỢNG
Group 11
Trang 2BÁO CÁO ĐỀ TÀI
Template Method
2/24/19 2
Trang 3NHỮNG NỘI DUNG CHÍNH
• Đặt vấn đề
• Tổng quan về template method
• Thiết kế mẫu
• Thực hiện mã lý thuyết mẫu template method
• Ưu điểm và nhược điểm
• Các mẫu liên quan
• Ứng dụng template method
• Demo
Trang 4Đặt vấn đề
2/24/19 4
Trang 5Tổng quan Về template method
• Mẫu template method là một design pattern thuộc nhóm Behavioral patterns
• Mẫu template method dùng để định nghĩa một bộ khung của một thuật toán trong một chức năng, chuyển giao việc thực hiện nó cho các lớp con Mẫu template method cho phép lớp con định nghĩa lại cách thực hiện của một thuật toán, mà không phải thay đổi cấu trúc thuật toán
Trang 6Thiết kế mẫu
2/24/19 6
Trang 7Thực hiện mã lý thuyết mẫu template method
• Theo sơ đồ UML về bản thiết kế mẫu Ta tạo lớp Abstract SoldiersTemplate và tạo 2 lớp con là Archers và Sniper override lại các hàm của lớp SoldiersTemplate
• Mục tiêu: Tạo ra 2 Soldiers khác nhau dựa trên 1 Soldiers mẫu
Trang 8Thực hiện mã lý thuyết mẫu template method
2/24/19 8
Trang 9Thực hiện mã lý thuyết mẫu template method
Trang 10Ưu điểm
• Rất hữu ích khi kết hợp với mẫu strategy
• Khả năng xử lý một dãy các lời gọi phương thức, trong đó một số các phương thức triển khai được hoãn lại cho lớp con (hoặc phân cấp lớp khác thông qua một strategy)
• Tái sử dụng mã nguồn, dễ kiểm soát các lớp con
• Làm giảm thiểu trùng lặp code
2/24/19 10
Trang 11Nhược điểm
• Bắt buộc thừa kế các lớp abstract
• Khó mở rộng do phụ thuộc nhiều vào các lớp cơ sở
Trang 12Mẫu design pattern liên quan
• Strategy : Mẫu template method giống mẫu STRATEGY ở chỗ nó dựa trên thuật toán. Các bước của thuật toán được quy định trong TEMPLATE METHOD và một số được hoãn lại đến các lớp miền
2/24/19 12
Trang 13ỨNG DỤNG TEMPLATE METHOD
• Trong C #, nó được sử dụng rộng rãi qua các giao diện được định nghĩa trước như ICOMPARABLE
• Các lập trình viên quyết định đó là những bước cần thiết của một thuật toán, và thứ tự của các bước này, nhưng cho
phép Client mở rộng hoặc thay thế một số các bước sau. Vì lý do này, các TEMPLATE METHOD được sử dụng nhiều trong các Framework
Trang 142/24/19 14