又称为静态工厂方法模式
根据参数的不同,返回不同类的实例
专门定义了一个类来负责创建其他类的实例
就像工厂根据产品的图纸来生产产品,工厂类专门负责创建其他类实例
被创建的实例通常具有相同的父类(这表明各种各样的产品类其实都属于同一大类)
也就是说简单工厂模式其实就是创建某一大类下面不同类的实例
(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");
- }
- }