定義 在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變算法結構的情況下,重新定義算法中的某些 步驟。 鉤子 鉤子是一種被聲明在抽象類中的方法,但只有空的或者默認的實現(xiàn)。鉤子的存在,可以讓子類有能力對算法的不同點進行掛鉤。要不要掛鉤有子類自己決定。 目的: 鉤子可以讓子類實現(xiàn)算法中的可選部分,或者在鉤子對子類的實現(xiàn)并不重要的時候,子類可以對此鉤子置之不理。 要點 1、“模板方法”定義了算法的步驟,把這些步驟的實現(xiàn)延遲到子類; 2、模板方法模式為我們提供了一種代碼復用的可重要技巧; 3、模板方法的抽象類可以定義具體方法、抽象方法和鉤子; 4、抽象方法由子類實現(xiàn); 5、鉤子是一種方法,它在抽象類中不做事,或者只做默認的事情,子類可以選擇要不要覆蓋它; 6、為了防止子類改變模板算法中的方法,可以用將模板方法聲明為final; 7、好萊塢原則告訴我們,將決策權放在高層模塊中,以便決定如何以及何時調(diào)用底層模塊。 實例 CaffeineBeverage.java
Powered by: BlogJava Copyright © sailor