温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java简单工厂模式怎么实现

发布时间:2022-02-23 15:12:22 来源:亿速云 阅读:101 作者:iii 栏目:开发技术

今天小编给大家分享一下Java简单工厂模式怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、软件设计模式的概述

软件设计模式,我们又称之为设计模式。既然是模式,那么它就是按照一定规律指定的。也正是如此,设计模式就是一套被反复使用、大多数人都知道的、经过整理分类的、前人代码设计理念和经验的总结。它存在的目的,就是为了提高代码的可重用性、可读性以及可靠性。

二、简单工厂模式

1、简述

纵观人类历史,工厂从最开始的自产自销的模式,到后来的农耕社会的小作坊模式,再接着工业改革后的流水线模式,到现在的形成现代化产业链模式。同样的道理,我们的项目代码也是从简单到繁杂,逐步迭代而来的。对于调用者而言,却是越来越来简单。就像是我们不用考虑工厂是怎么生产东西的,我们只需要购买即可。

按照实际业务场景,我们可以把工厂模式划分为三种不同的实现方式:简单工厂模式、工厂方法模式以及抽象工厂模式。

在这里,我们把被创建的对象称之为“产品”,把创建产品的对象称之为"工厂"。如果创建的产品很少,只需要一个工厂类就可以完成,那么我们就把这种模式称之为简单工厂模式。

2、优缺点分析

优点

  1. 工厂类必须要包含逻辑判断,用来决定在什么时间创建哪个产品的实例。客户端就不用承担直接创建产品对象的责任,可以方便快捷地创建出相应的产品。

  2. 客户端不需要知道创建具体产品的类名,只要知道相关参数即可。

  3. 可以通过引入配置文件,在不修改客户端代码的前提下对具体产品类进行更换或者添加。

缺点

  1. 简单工厂模式工厂类比较单一,承担了所有产品的职责。一旦出现异常,那么整个系统将会受到影响。且工厂类代码会十分的臃肿,违背了高聚合原则。

  2. 使用简单工厂模式引入新的工厂类,会增加系统的复杂度和理解难度。

  3. 系统扩展的难度较高,添加新产品就不得不修改逻辑。在产品过多的时候,会造成逻辑过于复杂的问题。

  4. 简单工厂模式使用的是static工厂方法,那么会造成工厂角色无法形成基于继承的等级结构。

应用场景:简单工厂模式适用于产品种类较少的情况下。

3、模式的结构和实现

简单工厂模式的主要角色划分:

  • 简单工厂(SimpleFactory):是该设计模式的核心,主要负责实现创建所有实例的内部逻辑。

  • 抽象产品(Product):是简单工厂创建的所有对象的父类,主要负责描述所有实例的公共接口。

  • 具体产品(ConcreteProduct):是该设计模式的创建目标,

代码实现:

public class Client {
    public static void main(String[] args) {
    }
    //抽象产品
    public interface Product {
        void show();
    }
    //具体产品:ProductA
    static class ConcreteProduct1 implements Product {
        public void show() {
            System.out.println("具体产品1显示...");
        }
    }
    //具体产品:ProductB
    static class ConcreteProduct2 implements Product {
        public void show() {
            System.out.println("具体产品2显示...");
        }
    }
    final class Const {
        static final int PRODUCT_A = 0;
        static final int PRODUCT_B = 1;
        static final int PRODUCT_C = 2;
    }
    static class SimpleFactory {
        public static Product makeProduct(int kind) {
            switch (kind) {
                case Const.PRODUCT_A:
                    return new ConcreteProduct1();
                case Const.PRODUCT_B:
                    return new ConcreteProduct2();
            }
            return null;
        }
    }
}

以上就是“Java简单工厂模式怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI