Class AbstractSmsProvider

java.lang.Object
cloud.opencode.base.sms.provider.AbstractSmsProvider
All Implemented Interfaces:
SmsProvider
Direct Known Subclasses:
ConsoleSmsProvider

public abstract class AbstractSmsProvider extends Object implements SmsProvider
Abstract SMS Provider 抽象短信提供商

Base class for SMS providers with common functionality.

具有通用功能的短信提供商基类。

Features | 主要功能:

  • Phone number validation - 手机号验证
  • Message content validation (length, emptiness) - 消息内容验证(长度、空值)
  • Template method pattern (doSend) - 模板方法模式(doSend)

Usage Examples | 使用示例:

public class MyProvider extends AbstractSmsProvider {
    public MyProvider(SmsConfig config) { super(config); }
    protected SmsResult doSend(SmsMessage message) {
        // implementation
    }
}

Security | 安全性:

  • Thread-safe: Yes (stateless validation methods) - 线程安全: 是(无状态验证方法)
Since:
JDK 25, opencode-base-sms V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Field Details

  • Constructor Details

    • AbstractSmsProvider

      protected AbstractSmsProvider(SmsConfig config)
  • Method Details

    • send

      public SmsResult send(SmsMessage message)
      Description copied from interface: SmsProvider
      Send single SMS 发送单条短信
      Specified by:
      send in interface SmsProvider
      Parameters:
      message - the message | 消息
      Returns:
      the result | 结果
    • doSend

      protected abstract SmsResult doSend(SmsMessage message)
      Actual send implementation 实际发送实现
      Parameters:
      message - the message | 消息
      Returns:
      the result | 结果
    • validateMessage

      protected void validateMessage(SmsMessage message)
      Validate message 验证消息
      Parameters:
      message - the message | 消息
    • validatePhoneNumber

      protected void validatePhoneNumber(String phoneNumber)
      Validate phone number 验证手机号码
      Parameters:
      phoneNumber - the phone number | 手机号码
    • validateContent

      protected void validateContent(String content)
      Validate content 验证内容
      Parameters:
      content - the content | 内容
    • getSignName

      protected String getSignName()
      Get sign name 获取签名名称
      Returns:
      the sign name | 签名名称
    • getConfig

      protected SmsConfig getConfig()
      Get config 获取配置
      Returns:
      the config | 配置