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

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

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

🍚总结

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

相关文章
|
7月前
|
设计模式 Java API
重构旧代码的秘诀:用设计模式 - 适配器模式(Adapter)给Java项目带来新生
【4月更文挑战第7天】适配器模式是解决接口不兼容问题的结构型设计模式,通过引入适配器类实现目标接口并持有不兼容类引用,实现旧代码与新接口的协作。适用于处理兼容性问题、整合遗留代码和集成第三方库。应用时,识别不兼容接口,创建适配器类转换方法调用,然后替换原有引用。注意保持适配器简单、使用组合和考虑扩展性。过度使用可能导致系统复杂和维护成本增加,应谨慎使用。
113 4
|
4月前
|
设计模式 微服务
设计模式问题之在软件设计中,“模块”如何定义和区分
设计模式问题之在软件设计中,“模块”如何定义和区分
|
5月前
|
设计模式 Ruby Python
Python实现工厂模式、抽象工厂怎么做?
**Python中的工厂模式**是设计模式的一种,用于灵活地创建对象。可以使用函数或类来实现。例如,一个简单的工厂函数创建`Product`对象
|
5月前
|
设计模式 存储 C#
|
5月前
|
设计模式 算法 C#
23种设计模式【C#代码举例】(上)
23种设计模式【C#代码举例】(上)
|
7月前
|
设计模式 API
【设计模式】什么是外观模式并给出例子!
【设计模式】什么是外观模式并给出例子!
56 0
|
7月前
|
设计模式 关系型数据库 程序员
UML中常用设计模式OCP、单例模式、简单工厂模式等模式讲解及C#中代码实现(附源码)
UML中常用设计模式OCP、单例模式、简单工厂模式等模式讲解及C#中代码实现(附源码)
78 0
|
7月前
|
设计模式 XML JSON
二十三种设计模式全面解析-工厂模式:创造对象的魔法工厂
二十三种设计模式全面解析-工厂模式:创造对象的魔法工厂
169 0
|
7月前
|
设计模式
二十三种设计模式全面解析-建造者模式:构建完美对象的秘密武器
二十三种设计模式全面解析-建造者模式:构建完美对象的秘密武器
|
7月前
|
设计模式 SQL 数据库连接
设计模式之抽象工厂模式--创建一系列相关对象的艺术(简单工厂、工厂方法、到抽象工厂的进化过程,类图NS图)
设计模式之抽象工厂模式--创建一系列相关对象的艺术(简单工厂、工厂方法、到抽象工厂的进化过程,类图NS图)