TEMPLATE METHOD PATTERN LÀ GÌ

 - 

Trong quá trình cải tiến và phát triển áp dụng, họ bao gồm những component khác nhau gồm sự tương đồng đáng chú ý, nhưng mà chúng không sử dụng interface/ abstract class thông thường, dẫn mang lại code duplicate sinh sống những vị trí. Nếu ý muốn biến hóa chung đến toàn bộ component, họ buộc phải đi sửa ngơi nghỉ từng vị trí vào component, có tác dụng tốn những chi phí không quan trọng. giữa những phương pháp để giải quyết sự việc này là áp dụng Template Method Pattern.

Bạn đang xem: Template method pattern là gì


Template Method Pattern là gì?

Define the skeleton of an algorithm in an operation, deferring some steps to client subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure.

Template Method Pattern là một trong những giữa những Pattern trực thuộc đội hành vi (Behavior Pattern). Pattern này bảo rằng “Định nghĩa một cỗ form của một thuật toán thù vào một tác dụng, chuyển giao Việc thực hiện nó cho những lớp con. Mẫu Template Method có thể chấp nhận được lớp con có mang lại phương pháp thực hiện của một thuật tân oán, nhưng mà chưa hẳn chuyển đổi cấu tạo thuật toán“.

Xem thêm: Ăn Gì Để Bổ Mắt? 10 Thực Phẩm Tốt Cho Mắt Giúp Mắt Sáng Khỏe

Điều này có nghĩa là Template method hỗ trợ cho họ tạo nên một bộ size (template) cho một vụ việc sẽ phải giải quyết. Trong đó những đối tượng cụ thể sẽ có được cùng các bước triển khai, cơ mà trong mỗi bước triển khai kia có thể khác biệt. Điều này đang tạo cho một cách thức truy cập tương đương nhau nhưng gồm hành động với công dụng khác nhau.

Template Method Pattern được áp dụng không hề ít trong mô hình Abstract – Concrete Class. Lúc bọn họ mong mỏi các Concrete class trường đoản cú triển khai up date theo cách của nó, tuy nhiên đồng thời vẫn bảo đảm an toàn tuận theo hồ hết ràng buộc cố định từ Abstract class. ví dụ như nlỗi buộc ràng về vật dụng tự quá trình thực hiện, tốt buộc ràng về tài liệu nguồn vào, cổng đầu ra, …

Trong Template method pattern, Abstract class có mang ra một template method để tiến hành một chức năng nào kia. Template method này vẫn Điện thoại tư vấn cho những method khác mặt trong Abstract class nhằm chế tạo ra dựng nên bộ khung. Nhưng hoàn toàn có thể những method kia sẽ không còn được xúc tiến mặt trong Abstract class, nhưng sẽ tiến hành override và thực thi lại bên trong các Concrete class.

Xem thêm: Dinh Dưỡng Cho Người Viêm Đại Tràng Không Nên Ăn Gì ? Người Bị Viêm Đại Tràng Nên Ăn Gì Và Kiêng Ăn Gì

Cài đặt Template Method Pattern như vậy nào?

*

PageTemplate.java

package com.cdspninhthuan.edu.vn.patterns.behavioral.templatemethod.template;public abstract class PageTemplate protected void showHeader() System.out.println("");protected void showNavigation() System.out.println("");protected void showFooter() System.out.println("");protected abstract void showBody();public final void showPage() showHeader();showNavigation();showBody();showFooter();HomePage.java

package com.cdspninhthuan.edu.vn.patterns.behavioral.templatemethod.template;public class HomePage extends PageTemplate
Overrideprotected void showBody() System.out.println("Content of home page page");DetailPage.java

package com.cdspninhthuan.edu.vn.patterns.behavioral.templatemethod.template;public class DetailPage extends PageTemplate
Overrideprotected void showBody() System.out.println("Content of detail");ContactPage.java

package com.cdspninhthuan.edu.vn.patterns.behavioral.templatemethod.template;public class ContactPage extends PageTemplate
Overrideprotected void showNavigation() // Just bởi nothing// Because we don"t want to lớn show navigation bar on liên hệ page
Overrideprotected void showBody() System.out.println("Content of tương tác page");TemplateMethodPatternExample.java

package com.cdspninhthuan.edu.vn.patterns.behavioral.templatemethod.template;public class TemplateMethodPatternExample public static void main(String<> args) PageTemplate homePage = new HomePage();homePage.showPage();System.out.println();PageTemplate detailPage = new DetailPage();detailPage.showPage();System.out.println();PageTemplate contactPage = new ContactPage();contactPage.showPage();Output đầu ra của chương thơm trình:

Content of trang chủ page pageContent of detailContent of tương tác page

Lợi ích của Template Method Pattern là gì?

Tái sử dụng code (reuse), tránh giống nhau code (duplicate): gửi đa số phần giống nhau vào lớp phụ thân (abstract class).Cho phép người tiêu dùng override chỉ một số phần nhất thiết của thuật tân oán to, khiến cho bọn chúng không nhiều bị ảnh hưởng rộng vì hồ hết biến đổi xảy ra với những phần khác của thuật toán.

Sử dụng Template Method Pattern Khi nào?

Lúc tất cả một thuật tân oán với rất nhiều bước cùng mong muốn được cho phép tùy chỉnh bọn chúng trong lớp bé.Mong ý muốn chỉ tất cả một xúc tiến thủ tục trừu tượng độc nhất vô nhị của một thuật toán thù.Mong muốn hành vi bình thường thân những lớp nhỏ nên được sắp xếp ở 1 lớp phổ biến.Các lớp thân phụ có thể Hotline những hành động trong những lớp nhỏ của bọn chúng một phương pháp thống tốt nhất (step by step). Tài liệu tyêu thích khảo:

Design Patterns: Elements of Reusable Object-Oriented Software – GOFDesign Pattern for dummies