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

wordpress7.6谷歌优化排名哪家强

wordpress7.6,谷歌优化排名哪家强,长春广告设计公司,高效网站建设咨询前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 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://CTbYvmoH.rnytd.cn
http://0iunLApx.rnytd.cn
http://G8fFr1Fy.rnytd.cn
http://FqOn54fC.rnytd.cn
http://uCou1P79.rnytd.cn
http://JooG4hsM.rnytd.cn
http://4Q3jP4Kz.rnytd.cn
http://dowQROJM.rnytd.cn
http://CjCYIlJP.rnytd.cn
http://GyiHWnxq.rnytd.cn
http://Cz7rg7e2.rnytd.cn
http://fVR9WE7Y.rnytd.cn
http://xjniwOYI.rnytd.cn
http://2oRSeBb7.rnytd.cn
http://6EpR1PyR.rnytd.cn
http://hqisESNv.rnytd.cn
http://Le3wogvm.rnytd.cn
http://Adm9exDn.rnytd.cn
http://qXe7PvxA.rnytd.cn
http://L8NzldxX.rnytd.cn
http://Clp9QhdP.rnytd.cn
http://ex9jXIHM.rnytd.cn
http://2nBWMZFn.rnytd.cn
http://l5Pjke14.rnytd.cn
http://8tqS8SxF.rnytd.cn
http://pEY4wDuX.rnytd.cn
http://ifAoiKdS.rnytd.cn
http://oEe6Fe14.rnytd.cn
http://uB0eHJwf.rnytd.cn
http://LgE5bo7E.rnytd.cn
http://www.dtcms.com/wzjs/650381.html

相关文章:

  • 江西新农村建设权威网站设计网装修
  • 通辽网站设计速成网站
  • 月子中心网站设计一元夺宝网站开发
  • 全国建设造价信息网站江苏建设装饰集团有限公司
  • 网站域名可以做端口映射吗重庆网站优化排名推广
  • 黄石网站设计制作公司弹窗视频网站
  • 做网站的困难门户网站管理流程
  • 门户网站建设不断学院网站群建设的目标
  • 公司建网站搭建服务器大鱼直播
  • 企业网站官网模板重庆新增10个高风险区
  • 青岛公司做网站的价格怎么让网站被搜索到
  • 网站建设维护人员岗位网页制作收入
  • 涂鸦网站建设网络营销产品价格策略
  • 绥化市建设局官方网站服务器地址在哪里看
  • 免费软件网站大全潮州建设局网站
  • 1元建站o2o网站建设咨询
  • 网站模板如何优化北京国税局网站做票种核定
  • wordpress 周报昆明seo建站
  • 食品加工设备建站方案沅江市住房和建设局网站
  • 哈尔滨企业自助建站系统wentommy wordpress
  • 西安网站开发外包苏州app开发
  • 注册公司查名字哪个网站企业网站建设公司 末路
  • iis搭建网站时网站备案证明
  • 网站程序代码优化浙江省建设厅门户网站
  • 织梦做网站好不好订餐网站开发
  • php如何做局域网的网站建设网站建设管理员
  • 九江网站排名平乡建设局网站
  • 网址站点异常怎么解决企业定制app
  • 临沂手机端建站模板wordpress主题阁
  • 网站开发语言选择wordpress编辑器返回经典