**
* 简单工厂模式
* 个人理解:非23种设计模式,是工厂模式的最简单应用
* 组件:工厂类(Factory)、抽象产品类(Product)、
* 具体产品类(ConcreteProduct,本例中ProductA、ProductB)、客户类(Client)
* 注意点:工厂类提供静态方法提供产品(构造器最好private)
*
*/
public class SampleFactoryDesignPattern {
public static void main(String[] args) {
Product product = Factory.create(Product.PRODUCT_B);
product.display();
}
}
class Factory {
private Factory(){}
public static Product create(int type) {
if (type == Product.PRODUCT_A) {
return new ProductA();
} else if (type == Product.PRODUCT_B) {
return new ProductB();
} else {
throw new IllegalArgumentException();
}
}
}
interface Product {
int PRODUCT_A = 1;
int PRODUCT_B = 2;
void display();
}
class ProductA implements Product{
@Override
public void display() {
System.out.println("This is productA");
}
}
class ProductB implements Product{
@Override
public void display() {
System.out.println("This is productB");
}
}