模板方法模式太簡單,我都感覺不像乙個設計模式,這個模式沒有學過設計模式的同學也可能非常容易的想到,並寫出來,那麼下面,我的簡單的舉個例子吧!uml圖就不用畫了
小明小紅
cpur5
i7記憶體條
16g16g
顯示卡gtx-1650
集顯硬碟
500g
500g
此時,我們發現,配置過程中,除了硬體引數不一樣,其他的都可以按照模板去配就可以了,**如下:
public
abstract
class
assemblycomputer
abstract string getcpu()
;abstract string getmemory()
;abstract string getharddisk()
;abstract string getgpu()
;}
class
xmassemblycomputer
extends
assemblycomputer
@override
string getmemory()
@override
string getharddisk()
@override
string getgpu()
}
class
xhassemblycomputer
extends
assemblycomputer
@override
string getmemory()
@override
string getharddisk()
@override
string getgpu()
}
system.out.
println
("******************************小明的電腦****************************************===");
xmassemblycomputer xmassemblycomputer =
newxmassemblycomputer()
; xmassemblycomputer.
assembly()
; system.out.
println
("******************************====小紅的電腦***********************************===");
xhassemblycomputer xhassemblycomputer =
newxhassemblycomputer()
; xmassemblycomputer.
assembly()
;
==
====
====
====
====
====
====
====小明的電腦==
====
====
====
====
====
====
====
====
====
====
=去電腦城…………………………
購買cpu為:r5
購買記憶體條為:16g
購買硬碟為:500g
購買顯示卡為:gtx-
1650
購買其他硬體……………………
組裝中………………………………
安裝作業系統………………………………
====
====
====
====
====
====
====
====
==小紅的電腦==
====
====
====
====
====
====
====
====
====
去電腦城…………………………
購買cpu為:r5
購買記憶體條為:16g
購買硬碟為:500g
購買顯示卡為:gtx-
1650
購買其他硬體……………………
組裝中………………………………
安裝作業系統………………………………
模板方法模式可以用在,你的多個演算法或者類,相似度非常高,但只有細微的差別時,可以考慮使用模板方法,將不同的地方提出來,當做抽象方法,由子類實現
是不是感覺模板方法模式是最簡單的設計模式了,簡單的都不像設計模式,不要慌,還有更簡單的設計模式,那就是原型模式
23種設計模式 模板方法模式
參考文件 通常叫模板方法模式定義乙個演算法的骨架,並允許子類為乙個或者多個步驟提供實現。能夠使得子類可以在不改變演算法結構的情況下,重新定義演算法的某些步驟。屬於行為性設計模式 一次性實現乙個演算法的不變的部分,並將可變的部分交給子類來實現 各子類中公共的行為被提取出來並集中到乙個公共的父類當中,從...
23種設計模式 14 模板方法模式
第一種實現 抽象類 第一種實現 抽象類 public abstract class makefood public void pouroil public void waitoilhot 具體往鍋裡倒哪個菜,交給子類,子類必須實現 public abstract void pourfood publ...
23種設計模式 模板模式
在軟體構建過程中,對於某一項任務,它常常有穩定的整體操作結構,但各個子步驟卻有很多改變的需求,或者由於固有的原因 比如說框架與應用之間的關係 而無法和任務的整體結構同時實現。如何在確定穩定操作的前提下,來靈活應對各個子步驟的變化或者晚期的需求?定義乙個操作中的演算法的骨架 穩定 而將一些步驟延遲 變...