public class Factory {
//静态工厂方法
public static Product getProduct(String productType){
Product product = null;
if(Constants.PRODUCT_TYPE_A.equals(productType)){
System.out.println("产品A初始化");
product = new ProductA();
//初始化设置product
}else if (Constants.PRODUCT_TYPE_B.equals(productType)){
System.out.print("产品B初始化");
product = new ProductB();
//初始化设置product
}
return product;
}
}
public abstract class Product {
//所有产品的公共业务方法
public void methodSame(){
//公共方法的实现
System.out.println("执行产品公共业务方法");
}
//声明抽象业务方法
public abstract void methodDiff();
}
public class ProductA extends Product {
//实现业务方法
@Override
public void methodDiff() {
//业务方法的实现
System.out.println("执行产品A业务方法");
}
}
public class ProductB extends Product {
//实现业务方法
@Override
public void methodDiff() {
//业务方法的实现
System.out.println("执行产品B业务方法");
}
}
public class Client {
public static void main(String args[]){
String productType = XMLUtils.getType();
Product product = Factory.getProduct(productType);
product.methodSame();
product.methodDiff();
}
}