工厂方法模式的定义
定义一个创建对象的接口,让子类决定实例化哪个类。
工厂方法模式的使用场景
在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式。
工厂模式主要分为四大模块:
1.抽象工厂,其为工厂方法模式的核心。
2.具体工厂,其实现了具体的业务逻辑。
3.抽象产品,是工厂方法模式所创建的产品的父类。
4.具体产品,为实现抽象产品的某一个具体产品对象。
工厂方法模式的UML图:
比较常见的方式是,需要生产哪一个产品就生产哪一个产品,有时候利用反射的方式更简洁生产具体的产品对象,此时的工厂方法的参数列表需要传入一个Class类来决定是哪一种产品。
Java中工厂方法模式举例
以List和Set为例,List和Set都继承于Collection接口,而Collection接口继承于Iterable接口,Iterable接口很简单,主要关注iterator方法。