作用:屏蔽了創(chuàng)建對象的具體步驟,通過“工廠類”來對特定對象進(jìn)行生產(chǎn),達(dá)到了創(chuàng)建和使用對象的分離。
組成:抽象產(chǎn)品類,實(shí)現(xiàn)類,工廠類
基礎(chǔ)產(chǎn)品類(抽象產(chǎn)品類),用于之后實(shí)現(xiàn)“父類引用指向子類實(shí)現(xiàn)”,由具體的實(shí)現(xiàn)類去完成抽象方法。這里用抽象類或者接口類都可以,只要能滿足“父類引用指向子類實(shí)現(xiàn)”。

實(shí)現(xiàn)類1.

實(shí)現(xiàn)類2

工廠類。根據(jù)不同的輸入,來返回不同的BaseProduct類。雖然統(tǒng)一了返回類型是基礎(chǔ)抽象類,但是具體實(shí)現(xiàn)是子類,也就是實(shí)現(xiàn)類。既統(tǒng)一了返回結(jié)果的類型,也將子類具體實(shí)現(xiàn)方法的調(diào)用完成了。這里的dealFruit方法,也可以作為static方法存在。

結(jié)合下面兩張圖片可以看到,我們通過給工廠類不同的入?yún)⑤斎?,雖然得到的都是Baseproduct類型的對象,但是我們在對其方法進(jìn)行調(diào)用時,也實(shí)現(xiàn)了方法的不同。

