工厂方法模式

2020-08-06  本文已影响0人  潜心之力

一、模式简介

定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。
场景:创建对象的任务由多个具体子工厂中的某一个完成,而抽象工厂只提供创建产品的接口。客户不关心创建产品的细节,只关心产品的品牌,只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程。

二、模式实现

定义产品工厂接口和具体产品实现工厂

public interface FruitFactory {
    Fruit create();
}

public class AppleFactory implements FruitFactory {
    @Override
    public Fruit create() {
        return new Apple();
    }
}

public class BananaFactory implements FruitFactory {
    @Override
    public Fruit create() {
        return new Banana();
    }
}

定义产品接口和具体产品

public interface Fruit {
    void info();
}

public class Apple implements Fruit {
    @Override
    public void info() {
        System.out.println("苹果");
    }
}

public class Banana implements Fruit {
    @Override
    public void info() {
        System.out.println("香蕉");
    }
}

具体工厂生产具体产品

FruitFactory appleFactory = new AppleFactory();
FruitFactory bananaFactory = new BananaFactory();
Fruit apple = appleFactory.create();
Fruit banana = bananaFactory.create();
apple.info();
banana.info();
上一篇 下一篇

猜你喜欢

热点阅读