我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java设计模式之工厂方法模式详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java设计模式之工厂方法模式详解

1.工厂方法是什么

众所周知,工厂是生产产品的,并且产品供消费者使用。消费者不必关心产品的生产过程,只需要关心用哪种产品就行。

在Java世界中,工厂方法模式和现实功能类似。工厂即一个工厂类,提供获得对象(产品)的方法(工厂方法)。其他类(消费者)需要用到某个对象时,只需调用工厂方法就行,不必new这个对象。

2.如何实现

1)创建产品的抽象类或接口---抽象产品

2)创建具体产品的类---具体产品

3)创建工厂的抽象类或接口---抽象构造类

4)创建具体工厂类---具体构造类

3.代码实现

     比如想要获得车的参数信息,轮胎信息等。

1)抽象产品


public abstract class Tyre {
    String name;
    public abstract void getName();
}

2)具体产品


public class MichelinTyre extends Tyre {
    MichelinTyre(){
        name = "米其林轮胎";
    }
    @Override
    public void getName() {
        System.out.println("car name :"+name);
    }
}

3)抽象构造类


public abstract class Car {
    
    public abstract Tyre getTyre();
}

4)具体构造类


public class BydCar extends Car {
    
    @Override
    public Tyre getTyre() {
        return new MichelinTyre();
    }
}

5)测试类


public class Main {
    public static void main(String args []){
        Tyre tyre;
        Car car = new BydCar();
        tyre = car.getTyre();
        tyre.getName();
    }
}

4.工厂方法模式的优点

1)可以让用户代码和某个特定对象的子类的代码解耦

2)用户不必关心他所使用的对象是如何创建的,只需要知道该对象有哪些方法可供调用即可。

5.拓展

工厂模式在Java集合框架中的应用案例

        Collection<Integer> list = new LinkedList<Integer>();
        for(int i = 0;i<5;i++){
            list.add(i);
        }
        Iterator<Integer> iterator = list.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }

在Collection接口中定义了一个 iterator方法,返回Iterator接口的实例。

   Iterator接口----抽象产品

   Iterator的实现类---具体产品

   Collection接口---抽象构造

  LinkedList链表类--具体构造类

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java设计模式之工厂方法模式详解

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

下载Word文档

猜你喜欢

java设计模式之工厂方法详解

一、概念 工厂方法模式是类的创建模式,又叫虚拟构造子模式(virtual constructor) 或者多态性工厂模式。二、模式动机 定义一个抽像的工厂,将产品的具体创建工作推迟到抽像工厂的具体子类中,有些
2023-05-31

Java设计模式——工厂设计模式详解

工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类。工厂模式的形态工厂模式主要用一下几种形态:1:简单工厂(Simple Factory)。2:工厂方法(Factory Method)。3:抽象工厂(Abstra
2023-05-30

java设计模式之简单工厂模式详解

简单工厂模式:由一个工厂对象决定创建出哪一种类的实例。1.抽象类public abstract class People { public abstract void doSth();}
2023-05-31

PHP设计模式之工厂模式详解

工厂模式是一种创建型设计模式,它提供了一种统一的方式来创建对象,而不用直接实例化对象。工厂模式可以隐藏对象创建的细节,客户端只需要调用工厂的方法就可以获取所需的对象。工厂模式有三种不同的变体:简单工厂模式、工厂方法模式和抽象工厂模式。1.
2023-08-14

java设计模式之抽像工厂详解

一、概念  提供一个创建一系列相关或相互依赖对像的接口,而无需指定它们具体的类。二、模式动机  这一系列对像之间是相互依赖的,相当于一个产品族 三、模式的结构通过上图我们可以清楚的看到抽像工厂模式包括以下4个角色:  1.抽像工厂角色(A
2023-05-31

Android设计模式系列之工厂方法模式

工厂方法模式,往往是设计模式初学者入门的模式,的确,有人称之为最为典型最具启发效果的模式。 android中用到了太多的工厂类,其中有用工厂方法模式的,当然也有很多工厂并不是使用工厂方法模式的,只是工具管理类。 今天以ThreadFacto
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录