PlantUML Integration 编写短信服务类图

2024-03-15 08:12

本文主要是介绍PlantUML Integration 编写短信服务类图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PlantUML Integration 写一个类图,主要功能为
1、编写一个serviceSms短信服务类;
2、需要用到短信的地方统一调用基建层的服务即可;
3、可以随意切换、增加短信厂商,不需要更改场景代码,只需要更改application.yml 里面的配置参数smsEffective的值即可完成切换;
4、方法签名1、类型 2、手机号 3、模板ID 4、泛型;
5、pplication.yml 里面的配置参数smsTest的值为true的时候,真实发送短信验证码,值为false的时候,不给用户发送验证码,仅写入将手机号+使用场景type为key、123456为值,写入缓存中;
6、方法签名的中的“类型”使用枚举,包含验证码、通知,如果值为“验证码”,需要将手机号+使用场景type为key、随机验证码为value,写入缓存中,过期时间为5分钟;

@startumlinterface SmsService {+ sendSms(type: SmsType, phoneNumber: String, templateId: String, content: T): boolean
}interface SmsProvider {+ sendSms(type: SmsType, phoneNumber: String, templateId: String, content: T): boolean
}class SmsProviderA {+ sendSms(type: SmsType, phoneNumber: String, templateId: String, content: T): boolean
}class SmsProviderB {+ sendSms(type: SmsType, phoneNumber: String, templateId: String, content: T): boolean
}class InfrastructureLayer {- SmsProvider smsProvider
}enum SmsType {VERIFICATION_CODENOTIFICATION
}class Cache {+ put(key: String, value: String, expiry: int): void+ get(key: String): String
}class ApplicationConfiguration {- boolean smsTest
}SmsService --* SmsProvider
SmsProvider <|.. SmsProviderA
SmsProvider <|.. SmsProviderB
SmsProviderA --* InfrastructureLayer
SmsProviderB --* InfrastructureLayer
SmsService *-- SmsType
SmsService o-- Cache
SmsService o-- ApplicationConfiguration' 注释
note top of SmsService
短信服务类,提供短信发送功能,控制发送模式,管理验证码缓存
end notenote top of SmsProvider
短信厂商接口,定义了发送短信的方法
end note
note top of SmsProviderA
厂商A实现
end note
note top of SmsProviderB
厂商B实现
end note
note top of Cache
验证码缓存类,用于存储和检索验证码
end note
note top of ApplicationConfiguration
应用配置类,用于控制短信发送模式
end note
note top of SmsType
短信类型枚举
end note
note top of InfrastructureLayer
基础设施层
end note@enduml

请添加图片描述

这篇关于PlantUML Integration 编写短信服务类图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/811323

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

redis防止短信恶意调用的实现

《redis防止短信恶意调用的实现》本文主要介绍了在场景登录或注册接口中使用短信验证码时遇到的恶意调用问题,并通过使用Redis分布式锁来解决,具有一定的参考价值,感兴趣的可以了解一下... 目录1.场景2.排查3.解决方案3.1 Redis锁实现3.2 方法调用1.场景登录或注册接口中,使用短信验证码场

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

使用Java编写一个文件批量重命名工具

《使用Java编写一个文件批量重命名工具》这篇文章主要为大家详细介绍了如何使用Java编写一个文件批量重命名工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景处理1. 文件夹检查与遍历2. 批量重命名3. 输出配置代码片段完整代码背景在开发移动应用时,UI设计通常会提供不