返回顶部
首页 > 资讯 > 后端开发 > Python >java简单工厂模式实例及讲解
  • 552
分享到

java简单工厂模式实例及讲解

2024-04-02 19:04:59 552人浏览 安东尼

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

摘要

简单工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创

简单工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

介绍

意图:定义一个创建对象的接口或者抽象类,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

主要解决:主要解决接口选择的问题。

何时使用:我们明确地计划不同条件下创建不同实例时。

如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。

关键代码:创建过程在其子类执行。

优点: 1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类  就可以。 3、屏蔽产品的具体实现,调用者只关心产品的接口。

缺点:每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统  的复杂度,同时也增加了系统具体类的依赖。这并不是什么好事。

使用场景: 1、日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。 2、数  据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时。 3、设计一个连接服务器的框架,需要三个协议,"POP3"、"IMAP"、"Http",可以把这三个作为产品类,共同实现一个接口。

注意事项:作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂  对象适合使用工厂模式,而简单对象,特别是只需要通过 new 就可以完成创建的对象,无需使用工厂模式。如果使用工厂模式,就需要引入一个工厂类,会增加系统的复杂度。

实例场景:开发一个类似计算器的JAVA程序。

1.抽象类或者接口:Operator.java

abstract class Operator {
 
    private double number1;
    private double number2;
    
       //用于四则运算类进行实现
    public abstract double getResult();
    
    public double getNumber1() {
        return number1;
    }
    public void setNumber1(double number1) {
        this.number1 = number1;
    }
    public double getNumber2() {
        return number2;
    }
    public void setNumber2(double number2) {
        this.number2 = number2;
    }
    
}

2.实现类(各种运算的处理类)


public class OperatorAdd extends Operator {
 
    @Override
    public double getResult() {
        return getNumber1() + getNumber2();
    }
 
}
 

 
public class OperatorSub extends Operator {
 
    @Override
    public double getResult() {
        return getNumber1() - getNumber2();
    }
}
 

public class OperatORMul extends Operator {
 
    @Override
    public double getResult() {
        return getNumber1()*getNumber2();
    }
}
 

public class OperatorDiv extends Operator {
 
    @Override
    public double getResult() {
        if(getNumber2()==0) {
            try {
                throw new Exception("除数不能为0");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return getNumber1()/getNumber2();
    }
}

3.创建实例的工厂类:OperatorFactory.java

public class OperatorFactory {
    
    public Operator createOperator(String op) {
        Operator operator = null;
        switch(op) {
            case "+" : operator = new OperatorAdd();break; 
            case "-" : operator = new OperatorSub();break;
            case "*" : operator = new OperatorMul();break;
            case "/" : operator = new OperatorDiv();break;
        }
        return operator;
    }
}

4.测试(Junit)

import org.junit.Test;
 
public class TestMain {
    @Test
    public void test() {
        OperatorFactory factory = new OperatorFactory();
        Operator operator = factory.createOperator("*");
        operator.setNumber1(10.2);
        operator.setNumber2(5.2);
        double result = operator.getResult();
        System.out.println(result);
    }
}

当我们有新的运算规则需要添加时,添加新的计算逻辑类以及在工厂类(OperatorFactory)中新增规则就可以。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: java简单工厂模式实例及讲解

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

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

猜你喜欢
  • java简单工厂模式实例及讲解
    简单工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创...
    99+
    2024-04-02
  • Java 深入探究讲解简单工厂模式
    目录1. 简单工厂介绍2. 简单工厂类图UML3. 简单工厂角色说明4. 代码实现5. 优缺点6. 使用场景1. 简单工厂介绍 简单工厂有一个具体的工厂类,可以生产不同的产品,属于创...
    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 单例模式和工厂模式实例详解
    单例模式根据实例化对象时机的不同分为两种:一种是饿汉式单例,一种是懒汉式单例。私有的构造方法指向自己实例的私有静态引用以自己实例为返回值的静态的公有的方法饿汉式单例 public class Singleton { private ...
    99+
    2023-05-31
    java 单例模式 工厂模式
  • java简单工厂模式怎么实现
    在Java中,简单工厂模式可以通过以下步骤实现:1. 首先创建一个接口,表示产品的抽象类,其中定义了产品的一些共同的方法。```ja...
    99+
    2023-08-18
    java
  • java简单工厂模式入门
    目录前言试例1. 创建饮料接口(或者抽象类)2. 具体饮料类的实现(可乐、雪碧)3. 饮料生产工厂类4. 工厂调用总结前言 定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创...
    99+
    2024-04-02
  • 如何理解Java简单工厂模式
    本篇文章为大家展示了如何理解Java简单工厂模式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。简单工厂模式概述定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的...
    99+
    2023-06-25
  • Java简单工厂模式详细解释
    目录简单工厂模式概述简单工厂模式的结构与实现结构:实现简单工厂模式的简化简单工厂模式的优缺点和适用环境简单工厂模式的优点简单工厂模式的缺点简单工厂模式的适用环境简单案例题目:UML:...
    99+
    2024-04-02
  • 简单工厂模式和抽象工厂模式
    简单工厂模式,顾名思义,就是比较简单的一个模式,并且使用在业务比较简单的情况下,且具体产品不需要扩张它由三种角色组成工厂类,是这个模式的核心,含有一定的逻辑和判断,根据逻辑不同,产生具体的工厂产品抽象产品:具体产品的父类具体产品:工具抽象产...
    99+
    2023-06-02
  • java设计模式之简单工厂模式详解
    简单工厂模式:由一个工厂对象决定创建出哪一种类的实例。抽象类public abstract class People { public abstract void doSth();}...
    99+
    2023-05-31
    java 设计模式 简单工厂
  • Java简单工厂,工厂方法,抽象工厂模式怎么实现
    这篇文章主要讲解了“Java简单工厂,工厂方法,抽象工厂模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java简单工厂,工厂方法,抽象工厂模式怎么实现”吧!1、简单工厂模式1.定...
    99+
    2023-06-29
  • C#实现简单工厂模式
    情景:有一个怪兽,HP是100,现在勇士有可以使用武器将其打败,有三种武器,木剑每次打击20血,铁剑每次50血,金刚剑每次100血,如果想要使用简单工厂方式,怎么设计? 一.啥是简单...
    99+
    2024-04-02
  • Java 设计模式以虹猫蓝兔的故事讲解简单工厂模式
    目录专栏介绍本期介绍什么是简单工厂模式优点缺点应用场景简单工厂的实现专栏介绍 本系列专栏会以虹猫蓝兔七侠传的故事为例来给大家详细分析所有模式,希望能给大家带来帮助! 本期介绍 模式:...
    99+
    2024-04-02
  • Java设计者模式简单工厂模式的示例分析
    这篇文章主要介绍Java设计者模式简单工厂模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!简介简单工厂模式 (Simple Factory) 又叫静态工厂方法(Static Factory Method)...
    99+
    2023-05-30
    java
  • 深入理解Java设计模式之简单工厂模式
    目录一、什么是简单工厂模式二、简单工厂模式的结构三、简单工厂模式的应用场景四、简单工厂模式和工厂方法模式区别五、简单工厂模式和策略模式的异同六、简单工厂模式的优缺点七、简单工厂模式的...
    99+
    2024-04-02
  • 工厂模式原理及其简单应用
    结合简单示例和UML图,讲解工厂模式简单原理。[@more@]一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样...
    99+
    2023-06-03
  • C++设计模式之简单工厂模式的实现示例
    前言 在我们要使用一个对象时,就必须通过类来实例化对象,也就是需要new一个对象。在new的过程是非常复杂的,要经过读文件->解析文本->创建对象->给属性设值等过...
    99+
    2024-04-02
  • 【Java】设计模式之单例模式与工厂模式
    ✅作者简介:热爱后端语言的大学生,CSDN内容合伙人 ✨精品专栏:C++面向对象 🔥系列专栏:JavaSE精品总结 文章目录   前言1、设计模式概念及分类2、单例模式2...
    99+
    2023-10-04
    java 单例模式 设计模式
  • C#如何实现简单工厂模式
    这篇文章主要介绍“C#如何实现简单工厂模式”,在日常操作中,相信很多人在C#如何实现简单工厂模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#如何实现简单工厂模式”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-02
  • Java工厂模式实例分析
    今天小编给大家分享一下Java工厂模式实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。优点一个调用者想创建一个对象,只...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作