工廠方法 (Factory Method)
??? 定義一個用于創建對象的接口,讓子類決定實例哪一個類。
??? 工廠方法使一個類的實例化延遲到其子類。在工廠方法模式中,核心的工廠類不再負責所有產品的創建,而是將具體創建的工作交給子類去做。這個核心工廠則變為抽象工廠角色,僅負責給出工廠子類必須實現的接口,而不接觸哪一產品創建的細節。
???
工廠方法模式可以用來允許系統不修改具體工廠角色的情況下引進新產品
??? 在工廠方法模式中,一般都有一個平行的等級結構,抽象工廠對應抽象產品,具體工廠對應具體產品
?
// 水果工廠
public interface FruitGardener { // 工廠接口
public Fruit factory();
}
// 蘋果工廠
public class AppleGardener implements FruitGardener { // 工廠方法
public Fruit factory() {
Fruit f = new Apple();
System.out.println("水果工廠成功創建一個水果:蘋果!");
return f;
}
}
// 草莓工廠
public class StrawberryGardener implements FruitGardener { // /工廠方法
public Fruit factory() {
Fruit f = new Strawberry();
System.out.println("水果工廠成功創建一個水果:草莓!");
return f;
}
}
// 測試類(客戶端)
public class TestApp {
private FruitGardener f1, f2, f3;
private Fruit p1, p2, p3;
private void test() {
// 實力化水果工廠
f1 = new AppleGardener();
f3 = new StrawberryGardener();
// 從水果工廠生產水果
p1 = f1.factory();
p3 = f3.factory();
}
public static void main(String args[]) {
TestApp test = new TestApp();
test.test();
}
}
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

