抽象工廠模式
- 抽象工廠模式(Abstract Factory Pattern)是圍繞一個(gè)超級(jí)工廠創(chuàng)建其他工廠。該超級(jí)工廠又稱(chēng)為其他工廠的工廠幼苛。這種類(lèi)型的設(shè)計(jì)模式屬于創(chuàng)建型模式窒篱,它提供了一種創(chuàng)建對(duì)象的最佳方式。
- 在抽象工廠模式中舶沿,接口是負(fù)責(zé)創(chuàng)建一個(gè)相關(guān)對(duì)象的工廠墙杯,不需要顯式指定它們的類(lèi)。每個(gè)生成的工廠都能按照工廠模式提供對(duì)象括荡。
創(chuàng)建項(xiàng)目等級(jí)的接口
public interface ProductLevel {
void creatProduct();
}
實(shí)現(xiàn)項(xiàng)目等級(jí)的接口:高等級(jí)和低等級(jí)
public class ProductHighLevel implements ProductLevel {
@Override
public void creatProduct() {
System.out.println("創(chuàng)建一個(gè)高等級(jí)的項(xiàng)目");
}
}
public class ProductLowLevel implements ProductLevel {
@Override
public void creatProduct() {
System.out.println("創(chuàng)建一個(gè)低等級(jí)的項(xiàng)目");
}
}
創(chuàng)建抽象工廠
public abstract class ProductAbstractFactory {
public abstract ProductLevel creatProduct(String level);
}
繼承抽象工廠
public class ProdcutFactory extends ProductAbstractFactory {
@Override
public ProductLevel creatProduct(String level) {
if (level.equals("high")) {
return new ProductHighLevel();
} else if (level.equals("low")) {
return new ProductLowLevel();
} else {
return null;
}
}
}
測(cè)試
ProdcutFactory prodcutFactory = new ProdcutFactory();
ProductLevel high = prodcutFactory.creatProduct("high");
high.creatProduct();
ProductLevel low = prodcutFactory.creatProduct("low");
low.creatProduct();
輸出
創(chuàng)建一個(gè)高等級(jí)的項(xiàng)目
創(chuàng)建一個(gè)低等級(jí)的項(xiàng)目