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

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

🍁 作者:知识浅谈,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";
    }
}

🍚总结

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

相关文章
|
API 索引
es实战-分片分配失败解决方案
分片无法分配情况的一些解决办法
3606 0
|
8月前
|
机器学习/深度学习 数据采集 物联网
大模型指南:一文搞懂LoRA微调
本文详细解析LoRA微调技术,通过低秩分解实现参数高效适配。您将了解其核心原理、实践步骤及效果评估方法,以及如何在消费级GPU上轻量化定制百亿参数大模型,并探索其未来应用与进阶技巧。
2853 14
大模型指南:一文搞懂LoRA微调
|
5月前
|
数据采集 安全 API
邮箱验证-邮箱校验-邮件地址验证-电子邮件地址校验API接口介绍
本服务提供邮箱全方位核验:校验格式、MX解析、识别临时/虚假/高风险邮箱,有效防范恶意注册、垃圾信息与欺诈。适用于注册验证、会员实名、邮件触达、安全通知及表单数据清洗等场景,保障数据真实可信。
517 5
|
7月前
|
人工智能 运维 安全
AI编程辅助实操踩坑记:注意事项与高效使用技巧
重复编码的内耗、紧急需求的赶工压力、小众场景的调试困境,或许是每一位开发者日常工作中都绕不开的难题。当各类AI编程工具扎堆出现,要么侧重单一补全功能、要么部署门槛过高,开源AI研发基础设施类编程辅助利器,以“轻量化部署+全链路赋能”的差异化优势,悄然成为我化解编码痛点的搭档,但是...
|
9月前
|
敏捷开发 Dubbo Java
需求开发人日评估
本文介绍敏捷开发中工时评估的关键方法——人日估算。涵盖开发、自测、联调、测试及发布各阶段的时间分配,并提供常见需求如Excel导入导出、单表增删改查、跨服务调用等的参考人日,助力团队科学规划迭代周期。(238字)
 需求开发人日评估
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
基于 NLP 与深度学习的智能面试训练系统:「模拟面试」APP 技术实现解析
本文详解「模拟面试」APP 的核心技术实现,涵盖 NLP 简历解析、AI 面试评估模型、多模态交互等模块,基于 PyTorch、spaCy、BERT 等技术栈,提供可落地的算法代码与系统架构设计,聚焦技术细节,助力招聘场景智能化升级。
|
弹性计算 运维 安全
操作系统控制台 | 让运维也可以点点点
操作系统控制台是一款强大的运维管理工具,旨在简化Linux系统的管理和监控。它提供了系统概览、系统诊断、系统观测、系统管理、订阅管理等功能,通过可视化页面降低使用复杂度,帮助用户高效分析和解决问题。
|
人工智能 算法 自动驾驶
人工智能适合什么人学
本文探讨了适合学习人工智能(AI)的人群,涵盖技术爱好者、数学与逻辑能力出众者、跨学科背景人才、持续学习者及实践驱动者五大类。文章指出,AI领域需要热情与探索精神,同时依赖扎实的数学基础和逻辑思维。跨学科融合与实践经验也是掌握AI技术的关键。全球领先教育机构培生推出的生成式AI认证项目,为职场人士和学生提供了紧跟技术前沿的机会。最终强调,无论背景如何,保持开放心态与学习热情是进入AI领域的核心要素,共同迎接智能化未来。
|
Web App开发 移动开发 缓存
微信小程序面试题汇总
微信小程序面试题汇总
1245 0
|
存储 Linux 数据安全/隐私保护
AccessData AD1镜像格式完全剖析
流行的数字取证工具FTK Imager创造了一种逻辑镜像格式,在取证界广泛使用,但鲜少有人对其格式进行研究。
2002 4
AccessData AD1镜像格式完全剖析

热门文章

最新文章