* Ý nghĩa
Mỗi thuật toán bao gồm một tập các hành động theo một thứ tự xác định và mỗi hành động sẽ được cài đặt khác nhau tùy thuộc vào các thể hiện khác nhau của đối tượng. Mẫu này giúp chúng ta định nghĩa thứ tự các hành động này và cho phép các lớp con của nó định nghĩa lại các hành động tùy thuộc vào ngữ cảnh cụ thể.
- 39 –
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
* Cấu trúc mẫu
Các thành phần tham gia vào cấu trúc Template Method
Lớp AbstractClass: là lớp trừu tượng định nghĩa khung của thuật toán trong phương thức mẫu (Template Method).
Lớp ConcreteClass: Cài đặt cách thực hiện các hành vi cụ thể
(PrimitiveOperation). Trong phương thức mẫu, các hành vi cụ thể sẽ được thực hiện theo một thứ tự nhất định. Mỗi lớp con có một cách thực hiện các hành vi cụ thể này khác nhau.
* Phạm vi ứng dụng mẫu
Sử dụng mẫu Template Method khi cần định nghĩa thứ tự của một thuật toán và chuyển cho các lớp con thực thi những hành vi cụ thể của thuật toán. Lớp cha sẽ cài đặt các hành vi chung, các lớp con sẽ kế thừa và sử dụng lại các phương thức này và chỉ cần cài đặt lại các hành vi riêng của nó.
* Nhận xét
Sử dụng mẫu này, các phương thức chung được cài đặt ở lớp cha, các lớp con chỉ cần kế thừa và sử dụng mà không cần cài đặt lại. Điều này giúp tránh được sự trùng lặp mã chương trình
- 40 –
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Mẫu này thường được sử dụng trong các lớp thư viện dùng để gọi các hàm hook. Đây là những hàm có sẵn trong thư viện cho phép người dùng kế thừa và cài đặt lại.