一、概述
1、定义
Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclasses.(定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到子类。)
2、通用类图
二、通用源码
根据上面的通用类图,写出通用源码:
抽象产品类:
public abstract class Product {
//产品类的公共方法
public void method1(){
//业务逻辑处理
}
//抽象方法
public abstract void methid2();
}
具体产品类:
public class ConcreteProduct extends Product {
//实现父类的抽象方法
@Override
public void methid2() {
//业务逻辑处理
}
}
抽象工厂类
public abstract class Creator {
/**
* 抽象方法,用于创建产品对象
* @param c 产品对象
* @param <T> 产品类型,这里是Class,也可以是String、Enum等类型
* @return 产品对象
*/
public abstract <T extends Product> T createProduct(Class<T> c);
}