工廠模式概念:
1.實力化物件,用工廠方法代替new操作
2.工廠模式包括工廠方法模式和抽象工廠模式
3.抽象工廠模式是工廠方法模式的擴充套件
工廠模式的意圖:
1.定義乙個介面來建立物件,但是讓子類來決定哪些類需要被例項化
2.工廠方法把例項化的工作推遲到子類中去實現
適合工廠模式的場景:
1.有一組類似的物件需要建立
2.在編碼是不能預見需要建立那種類的例項
3.系統需要考慮擴充套件性,不應依賴於產品例項如何被建立、組合和表達細節。
工廠方法模式和抽象工廠模式對比
1.工廠模式是一種極端情況的抽象工廠模式,re抽象工廠模式可以看做工廠模式的推廣
2.工廠模式用來建立乙個產品的等級結構,而抽象工廠模式是用來建立多個產品的等級結構
3.工廠模式只是乙個抽象產品類,二抽象工廠模式有多個產品抽象類
示例**:
1).首先建立產品介面
public inte***ce hairinte***ce
2).實現產品介面
public class redhair implements hairinte***ce
}
public class blackhair implements hairinte***ce
}
3).建立工廠
public class hai***ctory catch (instantiationexception e) catch (illegalacces***ception e) catch (classnotfoundexception e)
return null;
}public hairinte***ce gethairbyclass(class aclass) catch (instantiationexception e) catch (illegalacces***ception e)
return null;
}}
4).主線程呼叫
hai***ctory factory = new hai***ctory();
hairinte***ce blackhair = factory.gethairbyclass("mobi.futoubang.factory.blackhair");
blackhair.draw();
hairinte***ce redhair = factory.gethairbyclass(redhair.class);
redhair.draw();
設計模式 設計模式之工廠模式
工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...
c 設計模式 之 工廠模式之 工廠模式
1 uml類圖 實現和依賴關係 實現 sportfactory jeepfactory hatchbackfactory 實現 ifactory 介面 sportcar jeepcar hatchbackcar 實現 icar 介面 依賴 ifactory 依賴 icar sportfactory ...
設計模式 工廠模式之簡單工廠模式
定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...