關於java設計模式的模板方法模式與鉤子方法

2021-08-21 20:46:15 字數 517 閱讀 7210

今天又看了一把spring ioc的源**,看到refresh這個核心方法的時候,發現其中呼叫了乙個onrefresh方法,跟進一看發現裡面什麼實現都沒有。

什麼鉤子方法與鉤子方法的作用:

開始覺得很奇怪為什麼會這樣,後面才知道原來是自己孤陋寡聞了。所謂鉤子方法是對於抽象方法或者介面中定義的方法的乙個空實現,比如說有乙個介面,這個介面中定義了很多個方法,而你想實現其中某乙個方法,這個時候就可以寫乙個抽象類實現這個介面,在這個抽象類裡將你要用的那個方法設定為abstract,其它方法進行空實現,然後再繼承這個抽象類,就不需要實現其它不用的方法,這就是鉤子方法的作用。

查了一下鉤子方法另外乙個高階用法就是可以干預父類的業務流程,詳情在下面這個人的部落格裡

設計模式 模板方法模式 Java

模板方法模式 template 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中。模板方法模式使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。舉個栗子 小明想在學習過後去運動或者上會網,那麼小明在學習某門課程過後一定會搞點事情,而這些事情是可變化的,誰也不知道他要幹什麼,所以...

java設計模式 模板方法模式

在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。準備乙個抽象類,將部分邏輯以具體方法的形式實現,然後宣告一些抽象方法交由子類實現剩餘邏輯,有鉤子方法給予...

JAVA設計模式 模板方法模式

模板方法模式是一種行為型設計模式。其思想是 將部分邏輯以具體方法的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯,不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。模板方法模式涉及到2個角色 具體模板 concrete template 結構圖 具體 實現 publi...