Giới thiệu design patterns template method pattern là gì, template pattern trong java
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: Giới thiệu design patterns template method pattern là gì, template pattern trong java
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