java23种常用设计模式之抽象工厂模式(Abstract Factory)

Breach Legacy GRU服 SCP-106收容全流程指南 SCP基金会题材的恐怖生存游戏中,收容失效是最经典的玩法设定之一。作为Keter级实体,SCP-106凭借相位移动、接触腐蚀和口袋次元等机制成为多人服务器里最难处理的目标。理解它的行为原理,是制定有效收容策略的基础。在Breach Legacy等社区重制项目中,GRU服务器将多人协作与SCP收容流程结合,玩家需扮演不同阵营完成目标。本文从SCP-106的核心机制、阵营任务结构、设备准备到封门验证,系统讲解一套可行的收容流程,并给出多人分工、失败复盘与常见排错建议。对于刚接触联机收容的新玩家或反复被106团灭 阅读详情

上一篇博客在工厂方法的介绍中我们已经总结过了它的缺点,工厂方法模式类的创建依赖工厂类,不易于扩展程序,从设计层面看,扩展程序需要修改工厂类的做法违背了闭包原则。这个问题要解决也很简单,那就是抽象工厂模式,创建多个工厂类,一旦需要增加新功能,直接增加新的工厂类就搞定了,不需要修改之前的代码。

So easy,我们直接看代码吧!

package com.freedom.factory;
//方法接口
public interface Sender {
	
	public void send();

}

package com.freedom.factory;
//邮件消息实现类
public class MailSender implements Sender {

    @Override
    public void send() {
        System.out.println("mail");

    }

}

package com.freedom.factory;
//SMS消息实现类
public class SmsSender implements Sender {

    @Override
    public void send() {
        System.out.println("sms");

    }

}

package com.freedom.factory;
//生产邮件消息工厂
public class SendMailFactory implements Provider {

    @Override
    public Sender produce() {
        return new MailSender();
    }

}

package com.freedom.factory;
//生产SMS消息工厂
public class SendSmsFactory implements Provider {

    @Override
    public Sender produce() {
        return new SmsSender();
    }

}

package com.freedom.factory;

public interface Provider {
    public Sender produce();

}

//Abstract Factory Method
    @Test
    public void test4() {
        Provider provider = new SendMailFactory();
        Sender sender = provider.produce();
        sender.send();
        
    }

其实这个模式的好处就是,如果你现在想增加一个功能:发及时信息,则只需做一个实现类,实现Sender接口,同时做一个工厂类,实现Provider接口,就OK了,无需去改动现成的代码。这样做,拓展性较好!

其实这个例子还不够直观,抽象工厂,都没见到Abstract,虽然implement效果一样的,下次我们还是继续再来一个更直观的例子吧!


下载源码:http://download.youkuaiyun.com/detail/github_22022001/8290541


23种设计模式-抽象工厂(Abstract Factory)设计模式 软考中级-软件设计师 抽象工厂模式 阅读详情

相关推荐

从零搭建《火影忍者》手游服务端:Linux环境部署与全流程实战

游戏服务器后端开发是构建大型多人在线体验的核心技术,其原理涉及高并发网络通信、分布式系统架构与数据一致性保障。在技术价值上,一套稳定高效的服务端不仅能支撑海量玩家实时交互,更是游戏业务逻辑、经济系统和安全防线的基石。典型的应用场景包括MMORPG、回合制卡牌、SLG等中重度手游。本文以《火影忍者》IP的横版卡牌回合制手游为例,聚焦于**手工服务端**的完整搭建过程,详细拆解从Linux系统初始化、MySQL与**Redis**缓存部署、核心服务编译、到代理后台联调的全链路实践,为开发者深入理解游戏后端架构提

weixin_30800615的博客 338

java23种常用设计模式之抽象工厂模式(Abstract Factory)2

继续上一篇的工厂方法模式的优化,上一节讲到一个例子,生产白人、黑人和黄人,会说会笑,但是人有男有女,这个怎么拓展呢?重新生产一次?太不理智了! 之前花费了那么多功夫,不能白忙一场呀! 这里我们引入一个抽象工厂,问题就简单了!抽象工厂只实现了一个createHuman 的方法,目的是简化实现类的代码工作量,这个在讲代码的时候再说。这里还使用了Jdk 1.5以上版本 的一个新特性Enum 类型

The code world of freedom 498

AutoDock Vina 对接计算(大批量)

AutoDock Vina是一种用于计算生物分子之间相互作用的计算工具,主要用于蛋白质和小分子(通常是潜在药物分子)之间的对接研究。它可以用于虚拟筛选、药物设计和生物分子结合位点的预测等多个应用领域。

MurphyStar的博客 1万+

Java 中的 23 种设计模式详解

项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

微笑听雨 7万+

如何用Megatron-LM搭建多卡集群?手把手教你配置分布式训练环境

本文提供了一份详细的Megatron-LM多卡集群搭建实战指南。从硬件兼容性检查、软件栈版本对齐,到分布式并行策略(数据并行、张量并行、流水线并行)的配置与多节点启动脚本编写,手把手教你配置稳定高效的分布式训练环境,并分享了关键的排错与性能调优经验。

yellow的专栏 413

Voxel Hashing技术解析:如何解决TSDF内存爆炸问题?

本文深入解析Voxel Hashing技术如何有效解决TSDF内存爆炸问题。通过动态内存分配和空间哈希函数设计,该技术将内存占用降低96.6%,同时保持高精度重建。文章详细介绍了GPU加速实现、现代系统演进及实践指南,为实时3D重建提供工程解决方案。

m2n3b4v5c6的博客 713

23种设计模式——抽象工厂模式(Abstract Factory Pattern)详解

本文介绍了23种设计模式之——抽象工厂模式(Abstract Factory Pattern)的说明及使用

Meteors.的博客 1246

(实测可用)STM32L431RCT6开发板-实验1 跑马灯实验

一、开发板平台简介: 1、开发板资源简介 (1)开发板主芯片型号:STM32L431RCT6 (2)开发板主芯片封装:LQFP-64_10x10x05P (3)开发板主芯片内核:ARM® Cortex®-M4 (4)开发板主芯片主频:80MHz (5)开发板主芯片Flash大小:256KB (6)开发板主芯片RAM大小:64KB

zhej2014的博客 3167

Abstract Factory抽象工厂模式(Java代码实现)——创建型模式

在本人所编写的关于23种设计模式的文章中,前言基本上都是一样的,读者可以从章节2开始阅读,本篇是关于创建型模式中抽象工厂模式(Abstract Factory Pattern)的详解。 文章目录1.前言 1.前言 根据Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用面向对象软件的基础) 一书,四位作者把设计模式分为三大类,分别如下: 1.创建型模式 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑

MrYushiwen的博客 1938

【Neo4j × Python】基于知识图谱的电影问答系统(含问题记录与解决)附:源代码(含Bug解决)

此前,曾介绍过Neo4j的一些基础知识,本篇将在PyCharm中与Neo4j建立关联,从0到1实现一个基于知识图谱的电影问答系统,实现过程中,没有一帆风顺,而是遇到了一些问题,因此也包含问题的记录与解决。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 3166

[特殊字符] RK3588 平台上基于 Panfrost 的 Mesa 驱动编译全过程

摘要: 本文详细记录了在RK3588平台(Ubuntu 20.04 aarch64)上编译基于Panfrost的Mesa驱动的全过程。内容包括:1)系统依赖安装;2)libdrm编译;3)Mesa配置参数优化;4)LLVM 15与SPIRV工具链的安装方法;5)SPIRV-Tools版本问题的解决方案;6)最终编译命令及常见错误处理。关键点在于正确设置工具链路径(PKG_CONFIG_PATH)和版本匹配(LLVM 15对应SPIRV-LLVM-Translator v15.0.0),推荐将组件安装在/op

梁俊星的博客 941

2.Java设计模式-----抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式(Abstract Factory),是23种设计模式之一。抽象工厂模式是这样子定义的: 抽象工厂模式,提供一个创建一系列相关或互相依赖对象的接口,而无需指定它们具体的类。 在学习抽象工厂模式之前,最好熟悉简单工厂模式以及工厂方法模式,这样对理解抽象工厂模式会有一定帮助,而且抽象工厂模式是基于工厂方法模式而来的。如果你还没有了解到什么是简单工厂模式以及工厂方法模式...

扛麻袋的少年的博客 1455

PCL 区域生长分割【2026最新版】

区域生长算法原理介绍、代码实现以及一个具体实验场景的应用案例进一步实现将分割结果的分类保存至本地文件夹。最近一次更新时间为:2026年5月4日。

点云侠的博客 40万+

Java23种设计模式 抽象工厂模式【Abstract Factory Pattern】

  本文章转载大佬CBF4LIFE的文章 博客地址:https://www.cnblogs.com/cbf4life/           好了,我们继续上一节课,上一节讲到女娲造人,人是造出来了,世界时热闹了,可是低头一看,都 是清一色的类型,缺少关爱、仇恨、喜怒哀乐等情绪,人类的生命太平淡了,女娲一想,猛然一拍脑袋, Shit!忘记给人类定义性别了,那怎么办?抹掉重来,然后就把人类重新洗牌...

宇智波带土 207

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JAVA23种设计模式之抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 介绍 意图 :提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 主要解决:解决接口选择的问题。 使用时机:产品有多于一个的产品族,而系统只消费其中某一族的产品。 优点

fuu123f的博客 196

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java GoF 23种设计模式-创建型模式-抽象工厂模式(Abstract Factory Pattern)

文章目录一、模式定义二、模式动机三、模式结构四、代码实现4.1 Sender产品及其实现4.2 Logger产品及其实现4.3 工厂类及其实现4.4 测试及运行结果 一、模式定义 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于创建型模式。 抽象工厂模式是所有形式的工厂模式中最为抽象和最具一般性的一种形态。 抽象工厂模式与工厂方法模式最大的区别在于: 工厂方法模式: 一个抽象产品类,可

WU4566285的博客 444

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java 23 种设计模式-02-抽象工厂模式(abstract factory)

目录 目录 抽象工厂模式 介绍 优点 缺点 实际应用 应用实例: 使用场景: 注意事项 代码 接口 & 工厂 常量 具体子类 工厂实现 颜色实现 形状实现 测试 & 结果 UML & Code UML Code 目录导航 抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该...

4万+

java设计模式(三)抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式(Abstract Factory Pattern)的介绍、应用场景、优缺点以及代码实现。

weixin_70044963的博客 536

抽象工厂模式(Abstract Factory Pattern)

介绍 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 意图: 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 何时使用: 系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。 优点: 当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。 缺点: ...

BOBO的博客 233

Java-23个设计模式 Abstract Factory 抽象工厂模式

Abstract Factory 一系列相互依赖的对象的创建工作 (提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类) ① 创建抽象工厂SoftWareFactory(生成一个软件,iOS平台或者Android平台) /** * 软件工程基类 * 一个软件在多个平台的应用iOS和Android */ public abstract class SoftWar...

weixin_42321815的博客 136

java设计模式—抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式 工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。 public interface Sender { public void Send(); } public class MailSender implements Sender { @Ove

weixin_43920664的博客 122

Java23种设计模式的研究之一(抽象工厂方法模式(Abstract Factory))

前面一篇文章分析到工厂方法模式(3种类型模式),今天有空就倒腾一番抽象工厂模式。前面的工厂模式对我们原有的代码侵入性太强,不利于我们后期对原有功能的扩展,这也违背了Java设计模式的六大原则之一开闭原则。(Java设计模式六大原则:开闭原则、里氏代换原则、依赖倒转原则、接口隔离、迪米特法则、单一职责原则)。抽象工厂模式就恰好规避了侵入性强的缺点。翻看了些许抽象工厂模式的讲解,其实各不千秋。在抽象工

MsFzzy的博客 433

创建型模式:抽象工厂模式(Abstract Factory Pattern)

经过很多大神的总结,目前Java中一共23种经典的设计模式! 按照目的,设计模式可以分为以下三种用途: 1.创建型模式:用来处理对象的创建过程 2.结构型模式:用来处理类或者对象的组合 3.行为型模式:用来对类或对象怎样交互和怎样分配职责进行描述 创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:  工厂方法模式(Factory Method Pat

未来,你好! 590

Java 23 种设计模式:从踩坑到精通 —— 开篇及系列介绍

摘要:本文是《Java 23种设计模式:从踩坑到精通》系列的总入口与导航页。文章梳理了设计模式的起源与三大分类,结合SOLID六大原则,详解为什么2026年设计模式依然重要。提供25篇完整目录、面试高频Top10速记、场景速查索引、易混模式对比表及分级阅读路线,可作为长期收藏的设计模式学习手册。

折哥|智能物流与Java实战,副高数据库工程师。深耕出版社物流WMS/OMS(线体/立库/VGA),也分享Java进阶与OMS电商对接。Oracle→PG实战派。相信沉淀可迁移能力,分享通用技术,不藏不虚。 3581

Java 23 种设计模式

/ 产品族:Button + TextField 是一套// Windows 风格} }} }// Mac 风格} }} }// 抽象工厂 — 创建产品族一句话:普通工厂一个方法一种产品,抽象工厂一个方法多个关联产品。// 计算 "1 + 2 - 3"right = r;// 使用// 3一句话:很少用,JDK 的就是。创建型 — 怎么 new单例(一个)→ 工厂(子类决定)→ 抽象工厂(产品族)→ 建造者(分步构造)→ 原型(克隆)结构型 — 类/对象怎么组合。

鲜衣怒马少年时,不负韶华行且知。 从第一个Hello World起,便踏上这条后端修行路。趟过分布式事务的浑水,翻过性能瓶颈的高山,方知代码如剑,需千锤百炼方显锋芒。 博客所记,皆为修行路上的顿悟与磕绊,愿与同道人共勉,稳步江湖。 318
上一篇: java23种常用设计模式之工厂方法模式(Factory Method)
下一篇: java23种常用设计模式之工厂方法模式(Factory Method)2
freedom1993
博客等级 码龄12年 25粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值