設計模式之工廠模式

2021-07-13 11:13:17 字數 1403 閱讀 5156

工廠方法模式其定義為:

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類.工廠方法使乙個類的例項化延遲到期子類

工廠方法模式的變種較多,下面是乙個比較實用的通用原始碼.

抽象產品類

public abstract class product

public abstract void methd2();

}

具體的產品類可以有多個,都繼承於抽象產品類,其源**如下:

public class concreteproduct1 extends product

} public class concreteproduct2 extends product

}

抽象工廠類負責定義產品物件的產生,源**如下:

public abstract class creator

具體工廠類

public class concreatecreator extends creatorcatch(exception e)

return (t)product;

} }

場影類

public class client

工廠方法模式的優點:

良好的封裝性,**結構清晰.擴充套件性非常優勢.遮蔽產品類

工廠方法模式的使用場影

工廠方法模式是new乙個物件的替代品,所以在所有需要生成物件的地方都可以使用,但是需要慎重地考慮是否要增加乙個工廠類進行管理,增加**的複雜度.

工廠方法模式的擴充套件:

替代單例模式

單例類                 

public class singleton

public void dosomthind()

}

singleton保證不能通過正常的渠道建立乙個物件,可以通過反射建立物件

public class singletonfactorycatch(exception e)

} }

延遲初始化

何為延遲初始化?乙個物件被消費完畢後,並不立刻釋放,工廠類保持期初始狀態,等待再次被利用.延遲初始化是工廠方法模式的乙個擴充套件.

public class productfactoryelseelse if(type.equals("product2"))

}return product;

} }

延遲載入還是可以擴充套件的,例如限制某乙個產品類的最大例項化數量,可以通過判斷map中已有的物件數量來實現.

設計模式 設計模式之工廠模式

工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...

c 設計模式 之 工廠模式之 工廠模式

1 uml類圖 實現和依賴關係 實現 sportfactory jeepfactory hatchbackfactory 實現 ifactory 介面 sportcar jeepcar hatchbackcar 實現 icar 介面 依賴 ifactory 依賴 icar sportfactory ...

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...