iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java 设计模式以虹猫蓝兔的故事讲解简单工厂模式
  • 367
分享到

Java 设计模式以虹猫蓝兔的故事讲解简单工厂模式

2024-04-02 19:04:59 367人浏览 独家记忆

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

摘要

目录专栏介绍本期介绍什么是简单工厂模式优点缺点应用场景简单工厂的实现专栏介绍 本系列专栏会以虹猫蓝兔七侠传的故事为例来给大家详细分析所有模式,希望能给大家带来帮助! 本期介绍 模式:

专栏介绍

本系列专栏会以虹猫蓝兔七侠传的故事为例来给大家详细分析所有模式,希望能给大家带来帮助!

本期介绍

模式: 简单工厂模式
案例: 一个天外陨石(抽象产品),三把剑(产品),
一个铸剑师(工厂)。
虹猫蓝兔莎莉分别找铸剑师造了三把剑。

什么是简单工厂模式

工厂模式的定义: 定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。

1、按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。
2、我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”。

优点

1、工厂类包含必要的逻辑判断,可以决定在什么时候创建哪一个产品的实例。客户端可以免除直接创建产品对象的职责,很方便的创建出相应的产品。工厂和产品的职责区分明确。
2、客户端无需知道所创建具体产品的类名,只需知道参数即可。
3、也可以引入配置文件,在不修改客户端代码的情况下更换和添加新的具体产品类。

缺点

1、简单工厂模式的工厂类单一,负责所有产品的创建,职责过重,一旦异常,整个系统将受影响。且工厂类代码会非常臃肿,违背高聚合原则。
2、使用简单工厂模式会增加系统中类的个数(引入新的工厂类),增加系统的复杂度和理解难度
3、系统扩展困难,一旦增加新产品不得不修改工厂逻辑,在产品类型较多时,可能造成逻辑过于复杂
4、简单工厂模式使用了 static 工厂方法,造成工厂角色无法形成基于继承的等级结构。

应用场景

对于产品种类相对较少的情况,考虑使用简单工厂模式。使用简单工厂模式的客户端只需要传入工厂类的参数,不需要关心如何创建对象的逻辑,可以很方便地创建所需产品。

简单工厂的实现

案例的主要角色如下:
工厂(SimpleFactory):铸剑师
抽象产品(Product):天外陨石(铸剑的原材料)
具体产品(ConcreteProduct):长虹剑、冰魄剑、紫云剑

案例: 虹猫蓝兔莎莉分别找铸剑师打造三把剑,长虹剑、冰魄剑、紫云剑。铸剑师利用原材料天外陨石来铸造这三把剑。

Ss接口(天外陨石):

接口内声明了一个方法


public interface Ss {
    void show();
}

Aa类实现接口Ss(长虹剑):

实现Ss接口


public class Aa implements Ss {
    @Override
    public void show() {
        System.out.println("打造了一把长虹剑");

    }
}

Bb类实现接口Ss(冰魄剑):

实现Ss接口


public class Bb implements Ss {
    @Override
    public void show() {
        System.out.println("打造了一把冰魄剑");

    }
}

Cc类实现接口Ss(紫云剑):

实现Ss接口


public class Cc implements Ss {
    @Override
    public void show() {
        System.out.println("打造了一把紫云剑");
    }
}

Zz类(铸剑师):

声明一个Ss类型属性,声明一个abc方法,用来判断需要造哪把剑,返回一把剑对象。


public class Zz {
    private static Ss ss;

    public Ss abc(String a) {
        if ("长虹剑".equals(a)) {
            ss = new Aa();
        } else if ("冰魄剑".equals(a)) {
            ss = new Bb();
        } else if ("紫云剑".equals(a)) {
            ss = new Cc();
        } else {
            System.out.println("铸剑失败");
        }
        return ss;
    }
}

Demo测试类:

new一个铸剑师(工厂对象),调用铸剑师的方法传入需要造的剑,返回一个剑的对象,然后调用剑对象中的方法看看造的对不对。


public class Demo {
    public static void main(String[] args) {
        Zz zz = new Zz();
        Ss aa = zz.abc("长虹剑");
        aa.show();
        Ss bb = zz.abc("冰魄剑");
        bb.show();
        Ss cc = zz.abc("紫云剑");
        cc.show();
        Ss dd = zz.abc("aa");
    }
}

在这里插入图片描述

下期预告

模式: 普通工厂模式
案例: 七侠找铸剑师夫妇造剑

敬请期待

到此这篇关于Java 设计模式以虹猫蓝兔的故事讲解简单工厂模式的文章就介绍到这了,更多相关Java 简单工厂模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java 设计模式以虹猫蓝兔的故事讲解简单工厂模式

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

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

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

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

下载Word文档
猜你喜欢
  • Java 设计模式以虹猫蓝兔的故事讲解简单工厂模式
    目录专栏介绍本期介绍什么是简单工厂模式优点缺点应用场景简单工厂的实现专栏介绍 本系列专栏会以虹猫蓝兔七侠传的故事为例来给大家详细分析所有模式,希望能给大家带来帮助! 本期介绍 模式:...
    99+
    2024-04-02
  • Java 设计模式以虹猫蓝兔的故事讲解单例模式
    目录专栏介绍本期介绍什么是单例模式懒汉式一正常模式单例模式为什么线程不安全呢懒汉式二为什么线程安全呢饿汉式懒汉式与饿汉式的区别专栏介绍 【JAVA长虹键法】 主要讲了23种设计模式,...
    99+
    2024-04-02
  • Java设计模式以虹猫蓝兔的故事讲解桥接模式
    目录什么是桥接模式优点缺点知识点桥接模式实现颜色黄色红色裙子长裙短裙测试总结模式: 桥接模式 案例: 蓝兔宫主买裙子 什么是桥接模式 桥接(Bridge)模式的定义如下: 将抽象与实...
    99+
    2024-04-02
  • Java 设计模式以虹猫蓝兔的故事讲解原型模式
    目录什么是原型模式优点缺点应用场景浅克隆代码实现总结深克隆代码实现总结什么是原型模式 原型(Prototype)模式的定义如下: 用一个已经创建的实例作为原型,通过复制该原型对象来创...
    99+
    2024-04-02
  • Java设计模式以虹猫蓝兔的故事讲解代理模式
    目录什么是代理模式优点缺点知识点代理模式实现卖酒干娘的酒馆大奔的酒摊测试总结模式: 代理模式 案例: 大奔代干娘卖酒 什么是代理模式 代理模式的定义: 由于某些原因需要给某对象提供一...
    99+
    2024-04-02
  • Java设计模式以虹猫蓝兔的故事讲解装饰器模式
    目录什么是装饰器模式优点缺点知识点装饰器模式实现七侠虹猫加料加盐加孜然测试总结模式: 装饰器模式 案例: 黑小虎抓住了七侠,把虹猫烤了 什么是装饰器模式 装饰器(Decorator)...
    99+
    2024-04-02
  • Java设计模式以虹猫蓝兔的故事讲解建造者模式
    目录什么是建造者模式优点缺点知识点建造者模式实现丹药抽象丹方九转仙丹丹方太虚化神丹丹方神医豆豆测试总结什么是建造者模式 建造者(Builder)模式的定义: 指将一个复杂对象的构造与...
    99+
    2024-04-02
  • Java设计模式以虹猫蓝兔的故事讲解适配器模式
    目录什么是适配器模式优点缺点知识点适配器模式实现类适配器长虹剑气火舞旋风剑气火晶石测试对象适配器长虹剑气火舞旋风剑气火晶石测试总结模式: 适配器模式 案例: 虹猫利用火晶石催发火舞旋...
    99+
    2024-04-02
  • java设计模式之简单工厂模式详解
    简单工厂模式:由一个工厂对象决定创建出哪一种类的实例。抽象类public abstract class People { public abstract void doSth();}...
    99+
    2023-05-31
    java 设计模式 简单工厂
  • C#设计模式之简单工厂模式
    设计模式分类: 创建型模式。结构型模式。行为模式。 23种设计模式,如何记。面向对象的系统中有很多对象,创建型模式解决的问题就是如何创建对象,何时创建对象,它努力的让代码不要太多的关...
    99+
    2024-04-02
  • 深入理解Java设计模式之简单工厂模式
    目录一、什么是简单工厂模式二、简单工厂模式的结构三、简单工厂模式的应用场景四、简单工厂模式和工厂方法模式区别五、简单工厂模式和策略模式的异同六、简单工厂模式的优缺点七、简单工厂模式的...
    99+
    2024-04-02
  • java简单工厂模式实例及讲解
    简单工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创...
    99+
    2024-04-02
  • Java设计模式——工厂设计模式详解
    工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类。工厂模式的形态工厂模式主要用一下几种形态:简单工厂(Simple Factory)。2:工厂方法(Factory Method)。3:抽象工厂(Abstract...
    99+
    2023-05-30
    java 设计模式 ava
  • 【Java】设计模式之单例模式与工厂模式
    ✅作者简介:热爱后端语言的大学生,CSDN内容合伙人 ✨精品专栏:C++面向对象 🔥系列专栏:JavaSE精品总结 文章目录   前言1、设计模式概念及分类2、单例模式2...
    99+
    2023-10-04
    java 单例模式 设计模式
  • Java设计者模式简单工厂模式的示例分析
    这篇文章主要介绍Java设计者模式简单工厂模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!简介简单工厂模式 (Simple Factory) 又叫静态工厂方法(Static Factory Method)...
    99+
    2023-05-30
    java
  • Java设计模式之抽象工厂模式浅析讲解
    1.介绍 当系统准备为用户提供一系列相关对象,又不想让用户代码和这些对象形成耦合时,就可以使用抽象工厂模式。 2.如何实现 1)抽象产品--Car 2)具体产品--BYDCar、TS...
    99+
    2024-04-02
  • Java超详细讲解设计模式之一的工厂模式
    目录工厂模式1.简单工厂1.1结构1.2实现1.3优缺点1.4扩展2.工厂方法2.1结构2.2实现2.3优缺点3.抽象工厂3.1结构3.2实现3.3优缺点4.模式扩展4.1实现工厂模...
    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
  • C++设计模式之简单工厂模式的实现示例
    前言 在我们要使用一个对象时,就必须通过类来实例化对象,也就是需要new一个对象。在new的过程是非常复杂的,要经过读文件->解析文本->创建对象->给属性设值等过...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作