模版是什麼大家都清楚,比如簡歷模版,簡歷模版包括教育經歷、工作經歷、專業技能等等欄目。雖然簡歷模版相同,但是每個人的簡歷卻不同,這是因為我們每個人的教育經歷、工作經歷、專業技能等都不同。同理,在設計模式中,模板方法模式的主要用途在於將不變的行為從子類搬到超類,去除了子類中的重複**。
下面是模板方法模式的定義:
模板方法模式(templatemethod),定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。
如何實現模版方法呢?
首先我們定義乙個抽象類abstractclass,在抽象類中定義了乙個模板方法來組合primitiveoperation1()和primitiveoperation2()這兩個方法,然後讓子類重定義這兩個方法。
抽象模版類:
public abstract class abstractclass
}
具體模版類
這裡定義兩個具體模板類,concreteclassa和concreteclassb,繼承抽象模板類,實現具體方法。
public class concreteclassa extends abstractclass
@override
public void primitiveoperation2()
}
public class concreteclassb extends abstractclass
@override
public void primitiveoperation2()
}
通過呼叫模板方法來分別得到不同的結果。
public class client
}
執行結果:
具體方法a方法1實現
具體方法a方法2實現
具體方法b方法1實現
具體方法b方法1實現
5分鐘搞懂 session與cookie
無狀態協議的意思是服務端與客戶端不會記錄任何一次通訊的資訊。諾蘭有一部電影 記憶碎片 說的是乙個有 短期記憶喪失症 的人根據自己支離破碎的記憶來找到殺害自己妻子的 的故事。因為記不住發生的事,電影中那個老兄只能靠寫字條幫忙記錄事情。無狀態協議的通訊雙方就是 失憶症患者 而且是永久性的。服務端君 和 ...
5分鐘搞懂什麼是深度學習
現在各種名詞非常火,什麼人工智慧 機器學習 深度學習,那麼我要學習它,當然是要在乙個大的方向 輪廓上看到它。比如爬一座山,先遠遠的看看,對它有乙個大致的了解。如何理解人工智慧 機器學習和深度學習三者的關係 嗯嗯,這麼一看是不是清楚了很多呢?再來一張 人工智慧 機器學習和深度學習三者的關係 深度學習 ...
5分鐘搞懂什麼是深度學習
現在各種名詞非常火,什麼人工智慧 機器學習 深度學習,那麼我要學習它,當然是要在乙個大的方向 輪廓上看到它。比如爬一座山,先遠遠的看看,對它有乙個大致的了解。如何理解人工智慧 機器學習和深度學習三者的關係 嗯嗯,這麼一看是不是清楚了很多呢?再來一張 人工智慧 機器學習和深度學習三者的關係 深度學習 ...