当前位置: 首页 > wzjs >正文

免费创建手机网站网络营销策略理论

免费创建手机网站,网络营销策略理论,博彩外围网站怎么做,宝鸡做宝鸡做网站网站前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…

前言

现在我们有个如下的需求,设计一个邮件发奖的小系统,

需求

1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件

在这里插入图片描述

装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。

1. 定义核心接口

// 1. 定义核心接口
interface RewardHandler {void handleReward(Reward reward);
}

2. 基础实现类

// 2. 基础实现类
class BasicRewardHandler implements RewardHandler {@Overridepublic void handleReward(Reward reward) {// 实际发送邮件的核心逻辑sendEmail(reward);}private void sendEmail(Reward reward) {System.out.println("发送邮件奖励:" + reward.getAmount() + " 个 " + reward.getType());}
}

3. 装饰器抽象类

// 3. 装饰器抽象类
abstract class RewardDecorator implements RewardHandler {private RewardHandler wrappee;public RewardDecorator(RewardHandler wrappee) {this.wrappee = wrappee;}@Overridepublic void handleReward(Reward reward) {wrappee.handleReward(reward);}
}

4. 具体装饰器实现(可组合使用)

// 4. 具体装饰器实现(可组合使用)
class ValidationDecorator extends RewardDecorator {public ValidationDecorator(RewardHandler wrappee) {super(wrappee);}@Overridepublic void handleReward(Reward reward) {if (validate(reward)) {super.handleReward(reward);}}private boolean validate(Reward reward) {System.out.println("验证奖励有效性: " + reward.getId());return reward.getAmount() > 0;}
}class LoggingDecorator extends RewardDecorator {public LoggingDecorator(RewardHandler wrappee) {super(wrappee);}@Overridepublic void handleReward(Reward reward) {System.out.println("[LOG] 开始处理奖励 " + reward.getId());super.handleReward(reward);System.out.println("[LOG] 奖励处理完成 " + reward.getId());}
}class EncryptionDecorator extends RewardDecorator {public EncryptionDecorator(RewardHandler wrappee) {super(wrappee);}@Overridepublic void handleReward(Reward reward) {Reward encryptedReward = encrypt(reward);super.handleReward(encryptedReward);}private Reward encrypt(Reward reward) {System.out.println("加密奖励数据: " + reward.getId());return new Reward(reward.getId(), reward.getType(), reward.getAmount(), AES.encrypt(reward.getData()));}
}

5. 使用示例

// 5. 使用示例
public class Main {public static void main(String[] args) {// 组合装饰器(验证 -> 日志 -> 加密 -> 核心处理)RewardHandler handler = new LoggingDecorator(new EncryptionDecorator(new ValidationDecorator(new BasicRewardHandler())));Reward reward = new Reward("20230605-001", "金币", 100);handler.handleReward(reward);}
}

关键设计点说明:

  1. 灵活扩展性:通过装饰器链式组合(如验证→加密→日志),可动态调整处理流程
  2. 单一职责原则:每个装饰器只关注单一功能(验证、加密、日志等)
  3. 开闭原则:新增处理逻辑时无需修改已有代码
  4. 运行时组合:可根据不同环境配置装饰器组合(生产环境加验证,测试环境不加加密)

典型处理流程:

1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件

扩展建议:

  • 可添加RateLimitDecorator实现发放频率控制
  • 增加 FormatDecorator 处理奖励数据的格式化
  • 使用CircuitBreakerDecorator实现熔断机制
  • 通过配置中心动态调整装饰器组合顺序

这种模式特别适合需要动态组合多种预处理/后处理逻辑的场景,比继承方式更灵活,比责任链模式更易控制流程顺序。

http://www.dtcms.com/wzjs/73632.html

相关文章:

  • 怎样自己免费搭建网站营业推广的概念
  • 百度运营培训班seo是什么平台
  • 天津高端网站建设全网投放广告的渠道有哪些
  • 尚品本色木门网站是哪个公司做的百度最新秒收录方法2023
  • 眼科医院网站做竞价带来的询盘量淘宝权重查询入口
  • 免费制作网页东莞seo建站优化哪里好
  • 深圳宝安做网站的公司市场营销一般在哪上班
  • 百度的推广广告站长工具seo综合查询 分析
  • 网站企业建设方案电商平台哪个最好最可靠
  • 广州市财贸建设开发监理网站在线识别图片来源
  • 网站制作销售术语seo优化教程培训
  • 西安信息网站建设网络优化seo
  • 南通模板建站多少钱怎么自己注册网站
  • 内蒙古工程建设网站百度一下首页网页手机版
  • 中国电力建设集团网站手机端搜索引擎排名
  • 学校网站集群建设免费引流推广的方法
  • 网站建设ftp软件有哪些网店推广实训报告
  • 西安网站推广方案网络推广软文范文
  • 广州搜域网络提供专业的网站建设优化大师官网登录入口
  • 南昌专业做网站seo优化标题
  • 昆山做百度网站app开发需要哪些技术
  • 成都网站建设怎么样12345浏览器
  • 网站挂马处理百度快照制作链接的app的软件
  • 石家庄学做网站建设培训志鸿优化网
  • 西安培训网站建设自助建站系统模板
  • 西安网站制作开发公司新闻投稿平台有哪些
  • 旅游网站哪个做的好百度竞价怎么收费
  • 如何做一名合格的网站巡查推广计划方案模板
  • 做网站的技术关键免费关键词排名优化
  • 网站开发项目团队人员南昌seo优化