iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java深入探究讲解工厂方法模式
  • 452
分享到

Java深入探究讲解工厂方法模式

2024-04-02 19:04:59 452人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1. 工厂方法模式介绍2. 工厂方法模式类图UML3. 工厂方法模式角色说明4. 代码实现5. 工厂模式再探究6. 优缺点7. 应用场景1. 工厂方法模式介绍 定义:工厂方法模式

1. 工厂方法模式介绍

定义:工厂方法模式是对简单工厂模式进一步的抽象化,好处是可以使系统不修改原来代码的情况下引进新的产品,即满足开闭原则。定义一个用于创建对象接口,让子类决定实例化哪一个类,使一个类的实例化延迟到子类中。

2. 工厂方法模式类图UML

img

3. 工厂方法模式角色说明

抽象工厂(AbstractFactory):提供了创建产品的接口,调用方通过它访问具体工厂的工厂方法来创建产品

具体工厂(ConcreteFactory):实现了抽象工厂定义的方法,完成具体产品的创建

抽象产品(Product):定义了产品的规范,描述产品的主要特征和性能

具体产品(ConcreteProduct):实现了抽象产品的定义的方法,有具体工厂来创建产品,具体工厂和具体产品一一对应

4. 代码实现

工厂方法模式实现:



public interface Product {
    public void show();
}
​
public class ConcreteProduct1 implements Product {
    @Override
    public void show() {
        System.out.println("具体产品1展示...");
    }
}
​
public class ConcreateProduct2 implements Product {
    @Override
    public void show() {
        System.out.println("具体产品2展示...");
    }
}
​
​

public interface AbstractFactory {
    public Product createProduct();
}
​

public class ConcreteFactory1 implements AbstractFactory {
    @Override
    public Product createProduct() {
        ConcreteProduct1 concreteProduct1 = new ConcreteProduct1();
        System.out.println("具体工厂1创建具体产品1...");
        return concreteProduct1;
    }
    
public class ConcreteFactory2 implements AbstractFactory {
    @Override
    public Product createProduct() {
        System.out.println("具体工厂2产生具体产品2...");
        return new ConcreateProduct2();
    }
}

调用方法:


        //获取具体产品1
        Product product = new ConcreteFactory1().createProduct();
        product.show();
​
        Product product1 = new ConcreteFactory2().createProduct();
        product1.show();

使用步骤:

  • 创建抽象产品类,定义产品的公共方法
  • 创建具体产品类(实现抽象产品接口),定义生成的具体产品
  • 创建抽象工厂类,定义具体工厂的公共接口
  • 创建具体工厂类,定义创建对应具体产品实例的方法
  • 调用方调用具体的工厂类的方法,从而创建不同具体产品的实例

5. 工厂模式再探究

解决问题:解决了简单工厂类新增产品需要修改工厂类的方法逻辑问题,即为别开闭原则。

将具体的产品创建退出到工厂类的子类(具体工厂),此时工厂类不再负责所有产品的创建,而是给出具体工厂必须实现的接口,这样工厂方法在添加新的产品的时候,就不需要修改工厂类的逻辑,而是添加了新的工厂子类,符合开闭原则。

6. 优缺点

优点:

  • 灵活性强,对于新产品的创建,只需要多写一个对应的工厂类
  • 用户只需要指导工厂的名称就可以获得所要的产品,不需要指导产品具体创建过程

缺点:

  • 类的个数容易过多,增加了复杂度
  • 每一个工厂只能生产一种产品,次弊端可以使用抽象工厂模式解决

7. 应用场景

客户只关注创建产品的工厂名,不需要知道具体的产品名称

到此这篇关于Java 深入探究讲解工厂方法模式的文章就介绍到这了,更多相关Java 工厂方法 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java深入探究讲解工厂方法模式

本文链接: https://www.lsjlt.com/news/145148.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java深入探究讲解工厂方法模式
    目录1. 工厂方法模式介绍2. 工厂方法模式类图UML3. 工厂方法模式角色说明4. 代码实现5. 工厂模式再探究6. 优缺点7. 应用场景1. 工厂方法模式介绍 定义:工厂方法模式...
    99+
    2024-04-02
  • Java深入探究讲解抽象工厂模式
    目录1. 抽象工厂模式解决2. 抽象工厂类图UML3. 抽象工厂模式的主要角色4. 代码实现5. 抽象工厂方法再探究6. 优缺点7. 适用示例解决工厂方法模式的问题:一个具体工厂只能...
    99+
    2024-04-02
  • Java 深入探究讲解简单工厂模式
    目录1. 简单工厂介绍2. 简单工厂类图UML3. 简单工厂角色说明4. 代码实现5. 优缺点6. 使用场景1. 简单工厂介绍 简单工厂有一个具体的工厂类,可以生产不同的产品,属于创...
    99+
    2024-04-02
  • Java工厂模式的深入了解
    目录一、简单工厂模式二、工厂方法模式三、抽象工厂模式3.1、抽象工厂模式的定义3.2、  抽象工厂模式的结构3.3抽象工厂模式代码示例四、小结一、简单工厂模式 何为简单工厂...
    99+
    2024-04-02
  • Java创建型设计模式之工厂方法模式深入详解
    目录简单工厂模式定义产品对象创建工厂类工厂使用反射工厂方法模式概述应用场景优缺点主要角色工厂方法模式的基本使用创建抽象产品创建具体产品创建抽象工厂创建具体工厂客户端执行简单工厂模式 ...
    99+
    2024-04-02
  • Java工厂模式之简单工厂,工厂方法,抽象工厂模式详解
    目录1、简单工厂模式1.定义2.代码案例3.适用场景4.优缺点2、工厂方法模式1.定义2.代码案例3.适用场景4.优缺点3、抽象工厂模式1.定义2.代码案例3.适用场景4.优缺点4、...
    99+
    2024-04-02
  • 深入理解Java设计模式之抽象工厂模式
    目录一、什么是抽象工厂模式二、抽象工厂模式的应用场景三、抽象工厂模式和工厂方法模式对比四、抽象工厂模式的优缺点五、抽象工厂模式的实现六、总结一、什么是抽象工厂模式 为创建一组相关或相...
    99+
    2024-04-02
  • 深入理解Java设计模式之简单工厂模式
    目录一、什么是简单工厂模式二、简单工厂模式的结构三、简单工厂模式的应用场景四、简单工厂模式和工厂方法模式区别五、简单工厂模式和策略模式的异同六、简单工厂模式的优缺点七、简单工厂模式的...
    99+
    2024-04-02
  • 深入探究Java原型模式的魅力
    目录1. 什么是Java原型模式?2. 为什么要使用Java原型模式?3. Java原型模式的实现方式3.1浅克隆3.2 深克隆4. Java原型模式的优点5. Java原型模式的缺...
    99+
    2023-05-20
    Java原型设计模式 Java原型模式
  • Java深入探究Object类的方法
    目录1.equals方法1.API中equals方法的介绍2.==和equals 的对比2.hashCode方法3.toString方法4.finalize方法本文主要带大家看看Ob...
    99+
    2024-04-02
  • Java设计模式之简单工厂 工厂方法 抽象工厂深度总结
    目录工厂模式介绍好处常见的应用简单工厂(Simple Factory)适用场景角色分配:应用案例:优缺点:简单工厂实现:工厂方法(Factory Method)适用场景角色分配:应用...
    99+
    2024-04-02
  • PHP设计模式中工厂模式深入详解
    目录简介简单工厂作用适用场景优点缺点代码工厂模式作用适用场景优点缺点代码抽象工厂作用适用场景优点缺点代码三者对比简介 工厂模式属于创建型模式,可以分为三种:简单工厂、工厂模式、抽象工...
    99+
    2022-11-13
    PHP工厂模式 PHP设计模式
  • Java设计模式之工厂方法模式详解
    目录1.工厂方法是什么2.如何实现3.代码实现4.工厂方法模式的优点5.拓展1.工厂方法是什么 众所周知,工厂是生产产品的,并且产品供消费者使用。消费者不必关心产品的生产过程,只需要...
    99+
    2024-04-02
  • java简单工厂模式实例及讲解
    简单工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创...
    99+
    2024-04-02
  • Java 深入理解创建型设计模式之抽象工厂模式
    1.什么是抽象工厂模式? 抽象工厂模式:  定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类。抽象工厂模式可以将简单工厂模式和工厂方法模式进...
    99+
    2024-04-02
  • Java设计模式之抽象工厂模式浅析讲解
    1.介绍 当系统准备为用户提供一系列相关对象,又不想让用户代码和这些对象形成耦合时,就可以使用抽象工厂模式。 2.如何实现 1)抽象产品--Car 2)具体产品--BYDCar、TS...
    99+
    2024-04-02
  • java设计模式之工厂方法详解
    一、概念         工厂方法模式是类的创建模式,又叫虚拟构造子模式(virtual constructor) 或者多态性工厂模式。二、模式动机 ...
    99+
    2023-05-31
    java 设计模式 工厂方法
  • Java设计模式之工厂方法和抽象工厂
    全网最详细的工厂设计模式,本文主要是创建型设计模式中的工厂方法和抽象工厂,先由传统实现方式引出问题,接着对代码改进到简单工厂,后扩展到工厂方法,最后是抽象工厂模式,文中包括概念理解和...
    99+
    2024-04-02
  • 深入了解GoLang中的工厂设计模式
    目录1. 定义2. 优点3. 代码实现3.1 普通工厂3.2 工厂方法3.3 抽象工厂1. 定义 工厂模式是一种创建型设计模式,有了工厂只需要知道要制造的东西名字,就能让对应工厂进行...
    99+
    2023-05-20
    GoLang工厂模式 Go工厂模式 GoLang设计模式工厂模式
  • java简单工厂模式入门
    目录前言试例1. 创建饮料接口(或者抽象类)2. 具体饮料类的实现(可乐、雪碧)3. 饮料生产工厂类4. 工厂调用总结前言 定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作