又称为静态工厂方法模式
根据参数的不同,返回不同类的实例
专门定义了一个类来负责创建其他类的实例
就像工厂根据产品的图纸来生产产品,工厂类专门负责创建其他类实例
被创建的实例通常具有相同的父类(这表明各种各样的产品类其实都属于同一大类)
也就是说简单工厂模式其实就是创建某一大类下面不同类的实例
(1)抽象产品类(即产品大类):
(2)产品类的子类产品A类,产品类的子类产品B类
(3)工厂类:负责创建不同产品类的实例,工厂类有一个createProduct()方法,根据传进来的参数不同,产生不同类的实例
比如:传进来字符串‘A’,就产生产品A这个类的实例
传进来字符串‘B’,就产生产品B这个类的实例
if(arg=='A') return new ProductA();
if(arg=='B') return new ProductB();
实现一个简单的工厂模式:
public class SimpleFactory
{
public static Product createProduct(String type)
{
if(type=="A") return new ProductA();
else
return new ProductB();
}
public static void main(String[] args)
{
Product product=SimpleFactory.createProduct("A");
product.print();
}
}
abstract class Product
{
public abstract void print();
}
class ProductA extends Product
{
@Override
public void print()
{
System.out.println("产品A");
}
}
class ProductB extends Product
{
@Override
public void print()
{
System.out.println("产品B");
}
}