工厂方法模式
作者:互联网
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(); } }View Code
3.优点
- 开放-封闭原则:简单工厂中违背的开放-封闭原则
- 单一职责原则:一个工厂方法只负责一个产品的创建
- 不使用静态方法模式,可形成继承结构
4.缺点
- 增加了工厂类与多个接口
5.应用场景
- 类不需要知道对象的类时,工厂方法只需要知道工厂即可
6.参考链接
https://www.jianshu.com/p/d0c444275827
标签:createProduct,show,class,模式,工厂,Product1,方法,public 来源: https://www.cnblogs.com/forTheDream1991/p/10436235.html