工厂方法模式:
定义:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使用一个类的实例化延迟到子类。
举个栗子:我们要生产水果罐头,我们应该怎么做呢?
首先,我们需要准备好原料。其次我们需要一个罐头工厂,往工厂里运送不同的原料,出来的就是不同的罐头。
原料就是苹果啊、橘子啊等等的这些类。
interface IFruits {
public void taste();
}
class Apple implements IFruits {
public void taste() {
System.out.println("I'm apple");
}
}
class Orange implements IFruits {
public void taste() {
System.out.println("I'm orange");
}
}
工厂呢就是能够生产水果罐头的工厂啊。
abstract class AbstractFactory {
// 采用泛型对输入参数进行限制:
// 1.必须是Class类型
// 2.必须是IFruits类型的子类
public abstract <T extends IFruits> T createCan(Class<T> c);
}
class Factory extends AbstractFactory {
@Override
public <T extends IFrui