Pages

Hiển thị các bài đăng có nhãn Template Method. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Template Method. Hiển thị tất cả bài đăng

16 thg 6, 2010

Một vài khía cạnh về Template Method

Thông thường Template Method  được sử dụng trong lớp trừu tượng và là phương thức phổ biến dùng  trong các mẫu thiết kế (Design Patterns), đặc biệt trong Factory và Strategy! 
    Điểm cốt lõi của Template Method là xây dựng một bộ khung, là tập hợp các hành động được biết trước chức năng, nhưng những hành động đó chưa được biết là sẽ thực thi thế nào (Điều này sẽ được định nghĩa ở subclass)! Nói một cách hình tượng, lớp cơ sở sẽ "Giữ chỗ" (bằng Template Method), và sau đó, lớp dẫn xuất sẽ thực thi đoạn đã được giữ. Phương thức trong template method sẽ được định nghĩa lại ở lớp dẫn xuất gọi là một hook-method hoặc một placeholder.
          Ví dụ: 
             
abstract class CheckBackground {
/*Các phương thức này phải đượcđịnh nghĩa lại ở lớp dẫn xuất*/
public abstract void checkBank();
public abstract void checkCredit();
public abstract void checkLoan();
public abstract void checkStock();
public abstract void checkIncome();

/*Đây là một template method,chú ý rằng,
nó không phải là phương thức trừu tượng*/
public void check() {
checkBank();
checkCredit();
checkLoan();
checkStock();
checkIncome();
}

}

    


    Ứng dụng:   - Sử dụng phổ biến trong các Framework. Những đoạn mã có thể tái định nghĩa sẽ được vào lớp cơ sở của Framework. Sau đó, các hệ thống khách (clients) sẽ thoải mái tùy biến bằng cách tạo ra các lớp dẫn xuất. 

                       -  Sử dụng nhiều trong các mẫu thiết kế (Design Patterns), đặc biệt là Factory và Strategy(Sẽ thảo luận ở một bài khác)!


  Tài liệu tham khảo: 

    1.  http://www.vincehuston.org/dp/template_method.htm

    2.  http://www.javapractices.com/topic/TopicAction.do?Id=164

    3.  http://www.javacamp.org/designPattern/template.html