Design Patterns: Mẫu Template Method

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Định nghĩa

Template Method là mẫu xác định sườn của một giải thuật trong một thao tác, theo một số bước của các phân lớp. Template Method cho phép các lớp con xác định lại  chắc chắn một số bước của một giải thuật bên ngoài cấu trúc của giải thuật đó.

Sơ đồ UML

Template Method: UML Diagram

AbstractClass:

  • Định nghĩa các primitive operation (thao tác nguyên thủy) trừu tượng, các thao tác này định nghĩa các lơp con cụ thể để thực hiện các bước của một giải thuật.
  • Cài đặt một template method định nghĩa sườn của một giải thuật. Template method này gọi các thao tác nguyên thủy cũng như các thao tác được định nghĩa trong AbstractClass hoặc một số các đối tượng khác.

ConcreteClass:

  • Thực hiện các thao tác nguyên thủy để thực hiện các bước đã chỉ ra trong các lớp con của giải thuật

Vận dụng

Template Method nên sử dụng trong các trường hợp:

  • Thực hiện các phần cố định của một giải thuật khi đặt nó vào các lớp con để thực hiện hành vi có thể thay đổi.
  • Khi các lớp hành vi thông thường nên được phân tách và khoanh vùng trong một lớp thông thường để tránh sự giống nhau về mã.
  • Điều khiển mở rộng các lớp con. Ta có thể định nghĩa một template method, template method này gọi các thao tác “hook” tại các điểm đặc biệt, bằng cách đó cho phép các mở rộng chỉ tại các điểm đó.

Các mẫu liên quan

Các template Method sử dụng sự kế thừa để thay đổi các bộ phận của một giải thuật . Các Strategy sử dụng sự ủy nhiệm để thay đổi hoàn toàn một thuật toán.

» Tiếp: Mẫu Visitor
« Trước: Mẫu Strategy
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!