模板方法模式基於繼承關係,功能為構件骨架、提取邏輯以及功能實現的公共部分,不確定功能交給字類實現。建立材料介面,介面目前功能就是獲取材料的**。
public
inte***ce
material
建立模板方法類,包含乙個material集合,乙個構件房子方法(子類實現),乙個獲取總**方法(父類寫死避免作弊)
public
abstract
class
basehouse
protected
abstract
void
madehouse()
;public
final
intgetallprice()
return price;
}}
建立材料materiala=100、materialb=200、materialc=300
public
class
materiala
implements
material
}public
class
materialb
implements
material
}public
class
materialc
implements
material
}
建立house實現類housea=ab材料、houseb=bc材料
public
class
housea
extends
basehouse
}public
class
houseb
extends
basehouse
}
分別建立housea和houseb,並列印**。
public
class
test
}
列印結果:
housea**300
houseb**500
這裡basehouse為骨架層,包含:**集合list的定義、總**的計算方法getallprice()以及構造house的邏輯。具體何種材料建造出來的房子是不確定的,又字類madehouse()具體實現.
設計模式 Java設計模式之模板方法模式
本文源自 人生之旅 諳憶的部落格 我們先這樣來想象乙個生活中的場景,就是我們在銀行櫃檯進行辦理業務的時候,會進行這幾步 step1 進門取號 step2 填寫單據 step3 等待叫號 step4 視窗辦理 在這裡,無論是你我還是他 她,都會遵循這個模板進行業務的辦理!我們具體看step2,銀行是無...
JAVA設計模式之 模板方法模式
我們在生活中,很多事情都包含特定的一些步驟。如去銀行辦理業務,通常步驟的次序是 取號 填單 等待叫號 辦理業務。這幾個步驟中,有的是不變的,比如取號,每個人都要取,但有的是要變的,比如都有填單,但是根據不同的業務,填寫的單據不同。又比如我們外出吃飯,一般的步驟是 點餐 等待 吃飯 付錢,也能發現同樣...
Java設計模式之 模板方法模式
在物件導向開發過程中,通常會遇到這樣的乙個問題,我們知道乙個演算法所需的關鍵步驟,並確定了這些步驟的執行順序,但是,某些步驟的具體實現是未知的,或者說某些步驟的實現是會隨著環境的變化而改變的,例如,執行程式的流程大致如下 對於不同的程式語言,上述 4 個步驟都是不一樣的,但是,它們的執行流程是固定的...