1、工廠模式(創(chuàng)建型)

(1)首先了解下簡單工廠模式。如圖:

簡單工廠模式圖1-1

工廠類一般用于生產(chǎn)其他對象。舉個例子,有個雪糕工廠可以創(chuàng)建各種雪糕,不用每次需要造一個雪糕時先建一個工廠吧,都是用現(xiàn)成的工廠直接生產(chǎn)。

簡單工廠類,根據(jù)傳的字符串不同,會創(chuàng)建不同的對象。此時有個嚴重的缺點就是,我增加一種運算,就要手動修改簡單工廠類,這樣是違背了開閉原則。

為什么說違背開閉原則?

? 簡單工廠類里面有創(chuàng)建對象的邏輯,當增加之前沒有的對象時,需要增加邏輯代碼。此時運算類的getResult()只有四種運算,如果我要增加取余數(shù)運算,也需要改此代碼。

(2)工廠方法模式:定義了一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。

使用工廠方法改造圖1-1:

工廠方法模式圖2-1

仔細觀察會發(fā)現(xiàn):工廠方法模式實現(xiàn)時,客戶端需要決定實例化哪一個工廠來實現(xiàn)運算類,選擇判斷的問題從簡單工廠遷移到客戶端了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容