package com.anhu.caiyu;
public abstract class Product {
public abstract void show();
public static Product createProduct(String type){
if("product1".equals(type)){
return new ConcreteProduct1();
}else if("product2".equals(type)){
return new ConcreteProduct2();
}else{
return null;
}
}
}
package com.anhu.caiyu;
public class Driver {
public static void main(String[] args){
// 改進工廠後
Product product=ConcreteProduct1.createProduct(“product1”);
product.show();
product=ConcreteProduct1.createProduct(“product2”);
product.show();
product=ConcreteProduct1.createProduct(“product3”);
if(product!=null){
product.show();
}else{
System.out.println(“不生產該產品”);
}
}
}
package com.anhu.caiyu;
public class ConcreteProduct1 extends Product{
public void show(){
System.out.println(“產品1”);
}
}
package com.anhu.caiyu;
public class ConcreteProduct2 extends Product{
public void show(){
System.out.println(“產品2”);
}
}