設(shè)計(jì)模式分類.png
工廠方法模式:
定義一個(gè)創(chuàng)建對象的接口厨剪,但由子類決定要實(shí)例化的類是哪一個(gè)坚嗜。工廠方法讓類把實(shí)例化推遲到子類。
關(guān)鍵:創(chuàng)建過程在子類中進(jìn)行
抽象工廠模式
提供一個(gè)接口究驴,用于創(chuàng)建相關(guān)或依賴對象的家族爷怀,而不需要明確指定具體類阻肩。
工廠方法模式.png
抽象工廠模式.png
三個(gè)工廠模式的區(qū)別:
工廠方法模式:
一個(gè)抽象產(chǎn)品類,可以派生出多個(gè)具體產(chǎn)品類运授。
一個(gè)抽象工廠類烤惊,可以派生出多個(gè)具體工廠類乔煞。
每個(gè)具體工廠類只能創(chuàng)建一個(gè)具體產(chǎn)品類的實(shí)例。
簡單工廠模式:
簡單工廠模式可以看成是工廠方法模式的一個(gè)特例撕氧。
抽象工廠模式:
多個(gè)抽象產(chǎn)品類瘤缩,每個(gè)抽象產(chǎn)品類可以派生出多個(gè)具體產(chǎn)品類。
一個(gè)抽象工廠類伦泥,可以派生出多個(gè)具體工廠類。
每個(gè)具體工廠類可以創(chuàng)建多個(gè)具體產(chǎn)品類的實(shí)例锦溪。
區(qū)別:
工廠方法模式只有一個(gè)抽象產(chǎn)品類不脯,而抽象工廠模式有多個(gè)。
工廠方法模式的具體工廠類只能創(chuàng)建一個(gè)具體產(chǎn)品類的實(shí)例刻诊,而抽象工廠模式可以創(chuàng)建多個(gè)防楷。