抽象工廠模式:通常由工廠方法模式來實現。但一個工廠中往往含有多個工廠方
法生成一系列的產品。這個模式強調的是客戶代碼一次保證只使用一個系列的產
品。當要切換為另一個系列的產品,換一個工廠類即可。
原型模式:工廠方法的最大缺點就是,對應一個繼承體系的產品類,要有一個同
樣復雜的工廠類的繼承體系。我們可以把工廠類中的工廠方法放到產品類自身之
中嗎?如果這樣的話,就可以將兩個繼承體系為一個。這也就是原型模式的思想,
原型模式中的工廠方法為 clone,它會返回一個拷貝(可以是淺拷貝,也可以是深
拷貝,由設計者決定)。為了保證用戶代碼中到時可以通過指針調用 clone 來動
態綁定地生成所需的具體的類。這些原型對象必須事先構造好。
原型模式想對工廠方法模式的另一個好處是,拷貝的效率一般對構造的效率要高。