- 工厂模式定义:对客户端而言,隐藏对象创建逻辑,也不需要使用new生成对象;
- 工厂模式实现方式:
- 创建一个接口如Shape;
- 创建具体类实现Shape,比如圆形、方形、三角形;
- 创建Shape的Factory,通过Shape类型来判断创建不同的具体类;
- 最后客户端先创建一个Shape工厂,然后传递不同的shape类型参数获取具体类;
- 抽象工厂定义:创建其它工厂的超级工厂;
- 抽象工厂实现方式:
- 创建一个接口如Shape和Color;
- 创建具体的类实现上述各自的接口方法;
- 创建一个抽象工厂类可得到Shape和Color对象;
- 创建Shape和Color各自工厂类并集成抽象工厂类,可生产具体的Shape和Color类,比如圆形、方形、三角形;
- 创建一个工厂生产者,该类可根据外部传进来的参数判断选择对应的工厂;
- 最后使用这个工厂生产者,获得对应的工厂,并生产具体类。
- JDK实例:;
- 项目实例:各搜索领域通过工厂模式自动创建;
- 优点:;
- 缺点:;