【设计模式】工厂方法模式
設計模式總結鏈接
工廠方法模式是類的創建模式,又叫做虛擬構造子(Virtual Constructor)模式或者多態性工廠(Polymorphic Factory)模式。
工廠方法模式的用意是定義一個創建產品對象的工廠接口,將實際創建工作推遲到子類中。
一。簡解
工廠方法模式是在簡單工廠模式基礎上做了一點改進,生產某一類方法的工廠,不僅僅局限于某個(簡單工廠模式是生產某個)。
二。用途
主要是用來根據需求生產某一類產品,進一步實現對象創建和使用之間的解耦,通過接口或者抽象類的方式去實現不同對象的相同調用(此處涉及面向對象的里氏代換原則),比起簡單工廠模式適應性更廣,更易實現同類產品的擴展。
三。實例</font>
用戶需要某種產品,通過工廠類生產某種產品,將這種產品抽象為接口,擴展時可以通過實現接口進行擴展。
測試類
package zsl.工廠方法模式;public class Main {public static void main(String[] args) {ProdectFactory myFactory = new ProdectFactory();Prodect prodect = myFactory.prodectInstance("我要的產品");prodect.sayName();}}產品接口類
package zsl.工廠方法模式;public interface Prodect {/*** 說出該產品的名字*/public void sayName(); }產品工廠類
package zsl.工廠方法模式;public class ProdectFactory {/*** 根據需求生產一個產品* @param name* @return*/public Prodect prodectInstance(String name){return new ProdectInstance(name);} }產品實類
package zsl.工廠方法模式;public class ProdectInstance implements Prodect{private String name;public ProdectInstance(String name) {this.name = name;}/*** 實現接口的方法*/@Overridepublic void sayName() {System.out.println(this.name);}}四。優點
首先工廠方法基本繼承了簡單工廠的優點(除了簡單,這可是簡單工廠獨有的特征 (∩_∩))
其次,工廠方法加入了生產一類的產品功能,這個相當于是對簡單工廠中實例進行了一種接口的封裝,對外提供接口訪問,進一步實現了,使用、實現和生產之間的解耦。
加入接口的封裝,極大的提高了對某類產品的擴展性。
五。不足
生產一類產品,什么意思,對于不同類產品的生產不是很方便,這也是這個模式的一點小不足之處。不足歸不足,達到需求就好了,想用好的,是要代價的。
工廠方法模式,抽象工廠模式,簡單工廠模式,三者區別
總結
以上是生活随笔為你收集整理的【设计模式】工厂方法模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP常用cms
- 下一篇: asp.net ajax控件工具集 Au