创建型-工厂模式(Factory Method)

介绍

工厂方法模式是一种创建型设计模式 其在父类中提供一个创建对象的方法 允许子类决定实例化对象的类型

工厂方法模式

调用工厂方法的代码 (通常被称为客户端代码 无需了解不同子类返回实际对象之间的差别 客户端将所有产品视为抽象的 运输  客户端知道所有运输对象都提供了方法 但是并不关心其具体实现方式

工厂方法模式示例:

我们将创建一个 Shape 接口和实现 Shape 接口的实体类。下一步是定义工厂类 ShapeFactory

FactoryPatternDemo 类使用 ShapeFactory 来获取 Shape 对象。它将向 ShapeFactory 传递信息(CIRCLE / RECTANGLE / SQUARE),以便获取它所需对象的类型。

 

通过工厂类,实例化出具体的子类对象。

 

 

 

 

在 Java 中使用模式

识别方法 工厂方法可通过构建方法来识别 它会创建具体类的对象 但以抽象类型或接口的形式返回这些对象

1、java.util.Calendar#getInstance()

2、java.util.ResourceBundle#getBundle()?根据参数调用不同子类的方法

control类有多个子类

 

3、java.text.NumberFormat#getInstance()

4、java.nio.charset.Charset#forName()?根据参数调用不同子类的方法

CharsetProvider有两个子类,if中下面两个lookupXXX方法中也调用了charsetForName()方法

 

5、java.net.URLStreamHandlerFactory#createURLStreamHandler(String) (根据协议返回不同的单例对象

6、java.util.EnumSet#of()

7、javax.xml.bind.JAXBContext#createMarshaller() 及其他类似的方法

 

 

转:https://refactoring.guru/

转:https://www.runoob.com/design-pattern/factory-pattern.html

 
posted @ 2020-11-23 11:28  fangyanr  阅读(111)  评论(0编辑  收藏  举报