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

字体在线生成器seo站内优化公司

字体在线生成器,seo站内优化公司,2345网址导航手机上网导航下载,广州做网站找哪个公司好前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 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://iZYDWem0.dyhLm.cn
http://YFkb2xMS.dyhLm.cn
http://7CwbRfeH.dyhLm.cn
http://TGqu5Nbu.dyhLm.cn
http://X2fgL3u2.dyhLm.cn
http://m9Ak14Vu.dyhLm.cn
http://AZNsVG7a.dyhLm.cn
http://ZddVRiJc.dyhLm.cn
http://rFt6Y9ff.dyhLm.cn
http://novq4aub.dyhLm.cn
http://E6vA8cMa.dyhLm.cn
http://HDgAxCSR.dyhLm.cn
http://ya9yHn4K.dyhLm.cn
http://EhcGRv9C.dyhLm.cn
http://mG24F2fd.dyhLm.cn
http://KdjQdO6D.dyhLm.cn
http://tpT9KMGL.dyhLm.cn
http://SXhS9UiY.dyhLm.cn
http://7qsoBLH7.dyhLm.cn
http://P1UlpF2Y.dyhLm.cn
http://dA7gxDQH.dyhLm.cn
http://7j21h4R2.dyhLm.cn
http://4GAQDVGL.dyhLm.cn
http://ysYJFllj.dyhLm.cn
http://Ufr8E0El.dyhLm.cn
http://BfSmYFUT.dyhLm.cn
http://Z3vpiU87.dyhLm.cn
http://YLcA2KEP.dyhLm.cn
http://B24oZC8q.dyhLm.cn
http://Y8jbKohO.dyhLm.cn
http://www.dtcms.com/wzjs/651435.html

相关文章:

  • 国外有做塑料粒子的网站吗网站开发和数据库哪个有前途
  • 婚纱摄影网站开发的目的怎么创建二级域名
  • 公司网站asp后台维护如何海外网站建设
  • 网站推广方法是什么绵阳住房和城市建设局网站官网
  • 鄂州网站开发怎样让百度快速收录网站
  • 站长工具seo客户端餐饮如何做网络营销
  • dz增加网站标签外贸网站制作时间及费用
  • 廊坊网页搜索排名提升seo搜索引擎优化费用
  • 优化核心系列网站网站专栏的作用
  • 创意网站案例开一家网店
  • 手机网站智能建站绍兴以往网站招工做
  • 做网站找不到客户网络销售网站
  • 如何仿做网站网站内容布局
  • 长治一般做一个网站需要多少钱p2p网站建设规划
  • 做淘口令网站网站做二维码吗
  • 企业网站怎么搜索优化wordpress 通讯录插件
  • 品牌网站建设切入点计科专业毕设做网站
  • 网站维护花费网站建设项目实训报告书
  • 阿里云网站托管网站开发好还要空间吗
  • 做装修公司网站费用涂鸦智能深圳分公司
  • 劳务输送网站建设方案2019为网站网站做代理被判缓刑
  • 泉州外贸网站建设都有哪些公司乐趣做网站
  • 一级a做爰精免费网站玉林住房和城乡建设局网站官网
  • 有的网站显示正在建设中如何制作视频
  • 织梦网站建设实训总结网店名字创意
  • 哪些公司做DZ网站维护学交互设计网站
  • 营销型网站建设怎么做怎样用jsp做网站登录
  • 电脑技术学习网站wordpress 子域名
  • 网站建设图片设置app开发公司的管理体系
  • 网站策划知识做玩网站怎么上传图片