工厂模式比简单工厂模式多了一个抽象工厂类,也就是工厂模式可以创建多个工厂类。不同工厂可以生产不同的产品实例:
public interface AbstractProduct {
String showProduct();
}
public class NewProduct implements AbstractProduct {
public String showProduct() {
return "new product" ;
}
}
public class OldProduct implements AbstractProduct {
public String showProduct() {
return "old product" ;
}
}
public interface AbstractFactory {
AbstractProduct createProduct(String productType) ;
}
public class NewProductConcreteFactory implements AbstractFactory {
public AbstractProduct createProduct() {
return new NewProduct ();
}
}
public class OldProductConcreteFactory implements AbstractFactory {
public AbstractProduct createProduct() {
return new OldProduct ();
}
}
public class FactoryClient {
public static void main(String args[]) {
AbstractFactory newProductfactory = new NewProductConcreteFactory() ;
AbstractFactory oldProductfactory = new OldProductConcreteFactory() ;
AbstractProduct oldProduct = newProductfactory.createProduct();
AbstractProduct newProduct = oldProductfactory.createProduct();
System. out.println(oldProduct.showProduct());
System. out.println(newProduct.showProduct());
}
}