抽象工厂模式在项目开发中的应用,这个例子绝了

简介: 抽象工厂模式在项目开发中的应用,这个例子绝了

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主

📌 擅长领域:全栈工程师、爬虫、ACM算法

💒 公众号:知识浅谈

🔥 联系方式vx:zsqtcc

🤞抽象工厂模式在项目开发中的应用🤞

正菜来了⛳⛳⛳

🎈何为抽象工厂模式

抽象工厂也可以称作其他工厂的工厂,它可以在抽象工厂中创建出其他工厂,与工厂模式一样,都是用来解决接口选择的问题,同样都属于创建型模式。

顾名思义即为工厂的工厂,通过构建顶层的抽象工厂和抽象的产品,屏蔽系列产品的构建过程。

🎈举例深入体会

早期接入七牛云OSS(对象存储服务)上传图片与视频,后因业务调整,公司要求额外支持阿里云、腾讯云等其他云服务商,并且可以对客户提供外界访问。

设计要求为:允许在不破坏原有代码逻辑情况下,实现对任意三方云厂商的接入。

🍮抽象工厂

📍创建抽象工厂接口,里边含有上传图片和上传视频两个抽象接口,总的来说这个接口和里边的方法都是抽象层的接口。

AbstractOssFactory

public interface AbstractOssFactory {
    public OssImage uploadImage(byte[] bytes);
    public OssVideo uploadVideo(byte[] bytes);
}

📍抽象工厂中的图像抽象接口

OssImage

public interface OssImage {
    public String getThumb(byte[] bytes);
    public String getWatermark(byte[] bytes);
    public String getEnhance(byte[] bytes);
}

📍抽象工厂中的视频抽象接口

OssVideo:

public interface OssVideo {
    public String get720P();
    public String get1080P();
}

📍创建一个工厂实现抽象工厂,之后的操作是根据这个工厂实现,在这个工厂中上传图像和上传视频的方法中使用的是我们已经实现的方法OssImage和OssVideo这两个类。

🍮工厂

AliyunOssFactory

public class AliyunOssFactory implements AbstractOssFactory {
    public OssImage uploadImage(byte[] bytes){
        return new AliyunOssImage();
    }
    public OssVideo uploadVideo(byte[] bytes){
        return new AliyunOssVideo();
    }
}

📍根据OssImage实现具体云平台的图像上传接口。

AliyunOssImage

public class AliyunOssImage implements OssImage {
    public String getThumb(byte[] bytes){
        return "AliyunOssImage->getThumb";
    }
    public String getWatermark(byte[] bytes){
        return "AliyunOssImage->getWatermark";
    }
    public String getEnhance(byte[] bytes){
        return "AliyunOssImage->getEnhance";
    }
}

📍根据OssImage实现具体云平台的视频上传接口。

AliyunOssVideo:

public class AliyunOssVideo implements OssVideo {
    public String get720P(){
        return  "AliyunOssVideo->get720P";
    }
    public String get1080P(){
        return  "AliyunOssVideo->get1080P";
    }
}

🍚总结

以上根据在网络上的学习实现的一个例子和总结,希望有所帮助。

相关文章
|
传感器 存储 数据采集
04 深度解析物联网架构与技术应用于农业大棚系统
本文将深入探讨物联网架构在农业大棚系统中的应用,从设备接入、边缘网关、数据传输到云平台和应用平台,逐层解析其技术应用与通信协议,为读者全面呈现物联网在农业领域的实际运用场景。
444 0
|
Java 关系型数据库 API
探索后端技术:构建高效、可靠的服务器端应用
在当今数字化时代,后端技术是任何成功应用程序的基石。它涉及服务器、数据库和应用程序之间的交互,处理数据存储、业务逻辑和系统性能等关键任务。本文将深入探讨后端开发的核心概念、常见技术栈及其实际应用,帮助读者更好地理解和掌握构建高效、可靠后端系统的技巧与策略。
|
JavaScript 应用服务中间件 nginx
nginx部署vue项目
本文介绍了将Vue项目部署到Nginx的步骤,包括构建Vue项目、上传dist文件夹到服务器、安装Nginx、配置Nginx代理静态文件以及重启Nginx,确保了Vue应用可以通过域名或IP地址访问。
671 1
|
6月前
|
IDE Java 开发工具
JetBrains IntelliJ IDEA 2025.1 发布 - 领先的 Java 和 Kotlin IDE
JetBrains IntelliJ IDEA 2025.1 (macOS, Linux, Windows) - 领先的 Java 和 Kotlin IDE
415 2
|
缓存 NoSQL Java
Java高并发实战:利用线程池和Redis实现高效数据入库
Java高并发实战:利用线程池和Redis实现高效数据入库
901 0
|
传感器
SFNC —— 采集控制(四)(上)
SFNC —— 采集控制(四)
269 3
|
XML Java Maven
"Maven项目模块化大揭秘!掌握Model间最佳继承设计,让你的代码优雅如诗,项目维护不再愁!"
【8月更文挑战第11天】Maven是Java项目中常用的构建工具,其模块化特性对大型项目的管理至关重要。本文介绍Maven中的继承与聚合机制,指导如何通过继承消除重复配置,以及如何通过聚合统一构建多个模块。遵循单一职责原则,文章建议按功能划分模块,并提供了父POM与子POM的配置示例。此外,还讨论了适度模块化、依赖管理的原则,帮助提升项目的可维护性和扩展性。
183 4
|
12月前
|
机器学习/深度学习 人工智能 并行计算
CPU和GPU的区别
【10月更文挑战第14天】
|
数据处理 索引 Python
Pandas中的filter函数:有点鸡肋
Pandas中的filter函数:有点鸡肋
338 1
|
监控 NoSQL 算法
深入剖析Redis哨兵模式的原理和应用
Redis的哨兵模式是实现高可用性和自动故障转移的机制,当主服务器故障时,哨兵能自动检测并进行故障转移,确保服务连续和稳定性。哨兵模式通过监控主从服务器状态、自动故障转移、防止数据不一致,提高容错能力和负载均衡,降低运维成本,实现高可用性。哨兵通过检测主观下线和客观下线状态,以及选举Leader Sentinel来协调故障转移。Raft算法在其中用于领导者选举和状态一致性。哨兵模式通过综合考虑多种因素选举新主服务器并执行故障转移,保障集群稳定运行。
1353 0
深入剖析Redis哨兵模式的原理和应用