舉兩個(gè)例子以快速明白Java中的簡(jiǎn)單工廠模式:女媧摶土造人話說:“天地開辟,未有人民,女媧摶土為人。”女媧需要用土造出一個(gè)個(gè)的人,但在女媧造出人之前,人的概念只存在于女媧的思想里面。女媧造人,這就是簡(jiǎn)單工廠模式的應(yīng)用。 首先,在這個(gè)造人的思想里面,有幾個(gè)重要的角色:女媧本身、抽象的人的概念和女媧所造出的一個(gè)個(gè)具體的人。 1.)女媧是一個(gè)工廠類,也就是簡(jiǎn)單工廠模式的核心角色。
????????2.)具休的一個(gè)個(gè)的人,包括張三,李四等。這些人便是簡(jiǎn)單工廠模式里面的具體產(chǎn)品角色 3.)抽象的人是最早只存在于女媧的頭腦里的一個(gè)想法,女媧按照這個(gè)想法造出的一個(gè)個(gè)具體的人,便都符合這個(gè)抽象的人的定義。換言之,這個(gè)抽象的想法規(guī)定了所有具體的人必須都有的接口(特征或者功能) 其UML類圖出下所示: 理解了上面的這些東西,再來理解下面的例子,對(duì)照理解,相信看完這篇文章,便對(duì)java簡(jiǎn)單工廠模式有一個(gè)很好的理解:有一個(gè)農(nóng)場(chǎng)公司,專門向市場(chǎng)銷售各類水果,在這個(gè)系統(tǒng)里需要描述下列水果: 葡萄 Grape 草莓 Stuawberry 蘋果 Apple水果與其他植物不同,最終可以采摘食用,那么一個(gè)自然的做法是建立一個(gè)各種水果都適用的接口,以便與其他農(nóng)場(chǎng)里的植物區(qū)分開來,此時(shí),則是為水果類聲明了一個(gè)接口,表現(xiàn)在代碼上:
(注:以上代碼在JDK5.0,Myeclise3.2下編譯通過)
?
?類比兩個(gè)例子,園丁就相當(dāng)于女媧,而水果就相當(dāng)于具體的人,接口水果類就相當(dāng)于存在于類女媧思想里的人的抽象概念。由以上兩個(gè)例子可得出,簡(jiǎn)單工廠模式需要由以下角色組成: 接口????????????????????????接口的實(shí)現(xiàn)類(簡(jiǎn)單工廠模式里面的具體產(chǎn)品角色)????????????????????????工廠理解了以下兩個(gè)例子,再來看第三個(gè)例子:注意對(duì)比以下三個(gè)實(shí)例的不同實(shí)例1:
Powered by: BlogJava Copyright © freedoom