工厂方法模式
Posted forthedream1991
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂方法模式相关的知识,希望对你有一定的参考价值。
1.基本概念
- 工厂方法模式,又称工厂模式、多态工厂模式和虚拟构造器模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,将类的实例化延迟到子类工厂
- 解决的问题:简单工厂违背的开放-封闭原则等
- UML图
- 模式组成
2.代码实现
package com.chengjie; interface Product1 { void show(); } interface Factory1 { Product1 createProduct(); } class ProductA1 implements Product1 { @Override public void show() { System.out.println("ProductA1.show() is called!"); } } class ProductB1 implements Product1 { @Override public void show() { System.out.println("ProductB1.show() is called!"); } } class FactoryA implements Factory1 { @Override public Product1 createProduct() { return new ProductA1(); } } class FactoryB implements Factory1 { @Override public Product1 createProduct() { return new ProductB1(); } } public class TestFactoryMethod { public static void main(String[] args) { FactoryA fa = new FactoryA(); fa.createProduct().show(); FactoryB fb = new FactoryB(); fb.createProduct().show(); } }
3.优点
- 开放-封闭原则:简单工厂中违背的开放-封闭原则
- 单一职责原则:一个工厂方法只负责一个产品的创建
- 不使用静态方法模式,可形成继承结构
4.缺点
- 增加了工厂类与多个接口
5.应用场景
- 类不需要知道对象的类时,工厂方法只需要知道工厂即可
6.参考链接
https://www.jianshu.com/p/d0c444275827
以上是关于工厂方法模式的主要内容,如果未能解决你的问题,请参考以下文章