1.抽象工厂模式
定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中。
简单工厂if…else if…else放在工厂类中,势必造成工厂类无限庞大,抽象工厂模式中,核心工厂类不再负责对象的创建,而是将具体的创建工作交给子类。
2.示例
//抽象工厂,不负责具体的创建对象工作
public abstract class AbstractAnimalFactory
{
public abstract Animal createAnimal();
}
public class CatFactory extends AbstractAnimalFactory
{
@Override
public Animal createAnimal() {
return new Cat();
}
}
//使用多态:父类引用指向的是子类的对象
AbstractAnimalFactory factory = new CatFactory();
Cat cat3 = (Cat) factory.createAnimal();
cat3.eat();