template這個模式就是說規定好了做一件事情的框架,但是每一步具體怎麼做是空出來的。它在下面三種情況下適用:
1) 一次性實現乙個演算法的不變的部分,並將可變的行為留給子類來實現。這裡父類就是乙個模板,它規定了哪些方法是可變的,然後子類繼承於它,然後填寫自己的實現。
2) 各子類中公共的行為應被提取出來並集中到乙個公共父類中以避免**重複。其實這可以說是一種好的編碼習慣了。
3) 控制子類擴充套件。模板方法只在特定點呼叫操作,這樣就只允許在這些點進行擴充套件。
下面看乙個例子:
abstractdisplay就是乙個模板,它定義了執行的過程,即display()方法,但是這個方法裡面的open(),print(),close()三個方法是空的,也就是說,父類構建了執行的模板,子類來實現具體的步驟。上述**的執行結果是:
<>
+-----------+
|hello world|
|hello world|
|hello world|
|hello world|
|hello world|
+-----------+
java設計模式
a categorization of patterns by intent intent patterns inte ces adapter,facade,composite,bridge responsibility singleton,observer,mediator,proxy,chain...
JAVA設計模式
設計模式 設計模式分類 設計模式分為三類,建立型模式,結構型模式,行為型模式 建立型模式 1 工廠方法模式 2 抽象工廠模式 3 單例模式 4 建造者模式 5 原型模式 結構型模式 1 介面卡模式 2 裝飾器模式 3 模式 4 外觀模式 5 橋接模式 6 組合模式 7 享元模式 行為型模式 1 策略...
JAVA設計模式
介面卡模式 將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本不相容的類可以合作無間。外觀模式 提供了乙個統一的介面,用來訪問子系統中的一群介面。外觀定義了乙個高層介面,讓子系統更容易使用。模板方法模式 在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變演...