本文内容可以直达下载ppt详细版本:
面向对象建模技术——17种设计模式的详细介绍-行业报告文档类资源-CSDN下载
或选择各种知识的综合大礼包:
面向对象建模技术+UML+各种模型图+统一建模语言+17种设计模式的ppt-行业报告文档类资源-CSDN下载
目录
一. 工厂方法模式(Factory Method)
1.1 参与者
1.2 农场
二. 意图
三. 工厂也有层次
四. 产品有自己的专有工厂
五. 结构
六. 工厂方法模式和简单工厂模式
七. 设计模式专栏
一. 工厂方法模式(Factory Method)
1.1 参与者
- 抽象产品(Product):工厂创建的产品的父类,或它们共同拥有的接口;
- 具体产品(Concrete Product):工厂要创建的具体的产品;
- 抽象工厂类(Creator):
- 声明工厂方法,该方法返回一个Product类型对象;
- 在Java中,抽象产品是抽象类或接口;
- 具体工厂类(Concrete Creator):
- 重定义工厂方法,返回一个ConcreteProduct实例;
- 在Java中,工厂类是普通的非抽象类;
1.2 农场
- 抽象产品(Product):工厂创建的产品的父类,或它们共同拥有的接口;
- 具体产品(Concrete Product):工厂要创建的具体的产品;
- 抽象工厂类(Creator):
- 声明工厂方法,该方法返回一个Product类型对象;
- 在Java中,抽象产品是抽象类或接口;
- 具体工厂类(Concrete Creator):
- 重定义工厂方法,返回一个ConcreteProduct实例;
- 在Java中,工厂类是普通的非抽象类;
1.2 农场
二. 意图
- 定义一个用于创建对象的工厂接口,将创建产品的任务延迟到其子类中进行;
- 在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建对象的工作交给子类去做。这个核心的类则摇身一变,成为了一个抽象工厂角色,仅负责给出具体工厂子类必须实现的抽象方法,而不接触哪一个产品类应当被实例化这种细节;
- 别名:虚构造器(Virtual Constructor);
三. 工厂也有层次
- 定义一个用于创建对象的工厂接口,将创建产品的任务延迟到其子类中进行;
- 在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建对象的工作交给子类去做。这个核心的类则摇身一变,成为了一个抽象工厂角色,仅负责给出具体工厂子类必须实现的抽象方法,而不接触哪一个产品类应当被实例化这种细节;
- 别名:虚构造器(Virtual Constructor);
四. 产品有自己的专有工厂
五. 结构
六. 工厂方法模式和简单工厂模式
- 工厂方法模式的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上;
- 工厂方法模式可以允许很多具体工厂类从抽象工厂类中将创建行为继承下来,从而可以成为多个简单工厂模式的综合,进而推广了简单工厂模式;
- 与简单工厂模式相同的是ConcreteCreator 的FactoryMethod返还的数据类型还是一个抽象类型Product,而不是哪一个具体产品类型,而客户端也不必知道所得到的产品的真实类型。这种多态性设计将工厂类选择创建哪一个产品对象、如何创建这个对象的细节完全封装在具体工厂类内部;
- 对于增加新的产品类而言,这个系统完全支持“开-闭”原则
七. 设计模式专栏
- 工厂方法模式的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上;
- 工厂方法模式可以允许很多具体工厂类从抽象工厂类中将创建行为继承下来,从而可以成为多个简单工厂模式的综合,进而推广了简单工厂模式;
- 与简单工厂模式相同的是ConcreteCreator 的FactoryMethod返还的数据类型还是一个抽象类型Product,而不是哪一个具体产品类型,而客户端也不必知道所得到的产品的真实类型。这种多态性设计将工厂类选择创建哪一个产品对象、如何创建这个对象的细节完全封装在具体工厂类内部;
- 对于增加新的产品类而言,这个系统完全支持“开-闭”原则
https://blog.csdn.net/weixin_53919192/category_11817835.htmlhttps://blog.csdn.net/weixin_53919192/category_11817835.html



