工厂模式
工厂模式是创建型模式之一,可以分为三种
- 工厂方法模式
- 简单工厂模式
- 抽象工厂模式
一、工厂方法模式
工厂方法模式是典型的解耦框架,是 new 一个对象的替代品,由 4 个角色/组成
- 抽象产品
- 具体产品
- 抽象工厂
- 具体工厂
类结构图如下
1.1 水果工厂案例
首先来个水果接口,对应抽象产品
public interface Fruit {
String getName ();
}
有三种水果,苹果、香蕉、桃子,对应具体产品
public class Apple implements Fruit {
private static final String NAME = "苹果";
@Override
public String getName() {
return NAME;
}
}
// Banana & Peach 代码类似 Apple
水果有了,就是水果工厂 AbstractFruitFactory 了,对应抽象工厂
public abstract class AbstractFruitFactory {
public abstract <T extends Fruit> T getFruit ();
}
然后就是生产每种水果的工厂了,对应具体工厂
public class AppleFactory extends AbstractFruitFactory {
@Override
public <T extends Fruit> T getFruit() {
return (T) new Apple();
}
}
// BananaFactory & PeachFactory 类似 AppleFactory
工厂建设完毕