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

app和微网站的区别是什么wordpress去掉尾巴

app和微网站的区别是什么,wordpress去掉尾巴,网站开发费怎样入账,wordpress推广模板一、策略模式的本质#xff1a;面向接口的算法工厂 策略模式#xff08;Strategy Pattern#xff09;是行为型设计模式的典型代表#xff0c;其核心思想是将算法族抽象为独立对象#xff0c;使其能够相互替换。这种模式完美体现了以下面向对象设计原则#xff1a; 开闭原…一、策略模式的本质面向接口的算法工厂 策略模式Strategy Pattern是行为型设计模式的典型代表其核心思想是将算法族抽象为独立对象使其能够相互替换。这种模式完美体现了以下面向对象设计原则 开闭原则OCP新增策略无需修改已有代码 单一职责原则SRP每个策略只负责特定算法 依赖倒置原则DIP高层模块依赖抽象而非具体实现 UML类图 二、策略模式的三种典型实现方式 1. 基础版实现传统方式 // 策略接口 public interface DiscountStrategy {BigDecimal calculateDiscount(BigDecimal amount); }// 具体策略 public class VipDiscount implements DiscountStrategy {Overridepublic BigDecimal calculateDiscount(BigDecimal amount) {return amount.multiply(new BigDecimal(0.8));} }public class FestivalDiscount implements DiscountStrategy {Overridepublic BigDecimal calculateDiscount(BigDecimal amount) {return amount.subtract(new BigDecimal(50));} }// 上下文环境 public class OrderContext {private DiscountStrategy strategy;public void setStrategy(DiscountStrategy strategy) {this.strategy strategy;}public BigDecimal executeDiscount(BigDecimal amount) {return strategy.calculateDiscount(amount);} } 2. 枚举策略简化分支判断 public enum CalculatorStrategy {ADD {Overridepublic int execute(int a, int b) { return a b; }},SUBTRACT {Overridepublic int execute(int a, int b) { return a - b; }};public abstract int execute(int a, int b); } 3. Spring集成版企业级实践 // 定义策略接口 public interface PaymentStrategy {void processPayment(BigDecimal amount); }// 实现策略带Spring注解 Component(alipayStrategy) public class AlipayStrategy implements PaymentStrategy {Overridepublic void processPayment(BigDecimal amount) {// 支付宝支付逻辑} }Component(wechatPayStrategy) public class WechatPayStrategy implements PaymentStrategy {Overridepublic void processPayment(BigDecimal amount) {// 微信支付逻辑} }// 策略上下文自动注入策略集合 Service public class PaymentContext {Autowiredprivate MapString, PaymentStrategy strategyMap;public void executePayment(String paymentType, BigDecimal amount) {PaymentStrategy strategy strategyMap.get(paymentType Strategy);if (strategy ! null) {strategy.processPayment(amount);} else {throw new IllegalArgumentException(Unsupported payment type);}} } 三、策略模式的六大应用场景 场景1电商促销系统 满减策略 折扣策略 赠品策略 积分抵现策略 场景2支付网关路由 支付宝支付 微信支付 银联支付 数字货币支付 场景3日志处理系统 本地文件存储 云存储OSS/S3 消息队列转发 数据库存储 场景4数据校验引擎 手机号校验 身份证校验 邮箱校验 地址校验 场景5游戏AI系统 攻击策略 防御策略 逃跑策略 补给策略 场景6报表生成系统 PDF生成 Excel生成 HTML生成 CSV生成 四、策略模式与相关模式的深度对比 模式关注点与策略模式的关系工厂模式对象创建策略模式常配合工厂创建具体策略状态模式状态转换状态改变行为策略改变算法模板方法模式算法步骤策略替换整个算法模板方法替换步骤命令模式请求封装策略是主动选择命令是被动触发 五、企业级实战支付系统策略架构设计 架构图 复制 [支付请求] -- [支付网关]↓[策略路由中心]↓ -------------------------------- | 支付宝策略 | 微信支付策略 | 银联策略 --------------------------------↓[渠道适配层]↓[第三方支付平台] 代码实现Spring Boot 策略模式 java 复制 // 支付策略接口 public interface PaymentStrategy {PaymentResult pay(PaymentRequest request); }// 支付宝策略实现 Component public class AlipayStrategy implements PaymentStrategy {OverridePaymentType(PayChannel.ALIPAY)public PaymentResult pay(PaymentRequest request) {// 调用支付宝SDKreturn new PaymentResult(true, ALIPAY-123456);} }// 策略工厂自动发现策略 Component public class PaymentStrategyFactory {Autowiredprivate MapString, PaymentStrategy strategyMap;public PaymentStrategy getStrategy(PayChannel channel) {return strategyMap.values().stream().filter(s - s.getClass().isAnnotationPresent(PaymentType.class)).filter(s - s.getClass().getAnnotation(PaymentType.class).value() channel).findFirst().orElseThrow(() - new RuntimeException(未找到支付策略));} }// 支付服务 Service RequiredArgsConstructor public class PaymentService {private final PaymentStrategyFactory strategyFactory;public PaymentResult processPayment(PaymentRequest request) {PaymentStrategy strategy strategyFactory.getStrategy(request.getChannel());return strategy.pay(request);} } 六、策略模式的五个优化技巧 1. 策略预热缓存 public class StrategyCache {private static final MapString, Strategy cache new ConcurrentHashMap();public static Strategy getStrategy(String type) {return cache.computeIfAbsent(type, t - {// 动态加载策略类try {return (Strategy) Class.forName(t).newInstance();} catch (Exception e) {throw new RuntimeException(策略加载失败);}});} } 2. 策略权重配置 # application.yml payment:strategies:alipay: weight: 60enable: truewechat: weight: 30 enable: trueunionpay: weight: 10enable: false 3. 策略性能监控 public class MonitoredStrategy implements Strategy {private final Strategy delegate;private final MeterRegistry registry;public MonitoredStrategy(Strategy delegate, MeterRegistry registry) {this.delegate delegate;this.registry registry;}Overridepublic void execute() {Timer.Sample sample Timer.start(registry);try {delegate.execute();} finally {sample.stop(registry.timer(strategy.execution.time, type, delegate.getClass().getSimpleName()));}} } 七、常见陷阱与解决方案 陷阱现象解决方案策略状态共享线程安全问题使用ThreadLocal或每次新建策略实例策略膨胀失控类数量爆炸使用DSL动态生成策略类策略切换开销大频繁切换影响性能引入策略缓存池策略配置错误运行时找不到策略增加策略fallback机制策略执行顺序依赖策略之间存在依赖关系引入策略责任链模式
http://www.hkea.cn/news/14588348/

相关文章:

  • 手机网站添加微信方式 网站开发
  • 吉安建设局官方网站网站规划建设实训报告书
  • 网站开发系统毕业综合实践报告wordpress包下载
  • 浙江省专业网站制作网站建设赤峰网站建设 公司
  • 网站建设 佛山市wordpress 不显示中文图片
  • 自己做营销网站wordpress解决新浪图床
  • 优化网站推广排名前沿设计公司网站
  • 服装网站建设策划书论文网站和网页
  • 物流公司怎么做网站美橙互联
  • 公司品牌的塑造网站建设嵌入式软件开发专业
  • 广州哪家做网站好东莞保安公司联系电话
  • 做网站的镜像是什么意思万博法务网站
  • wordpress网站安装插件湘潭交通网站
  • 大型门户网站建设一般多少钱wordpress缩略图不显示图片
  • 南通网站定制公司设计素材网站黄金烤肠
  • 深圳建网站就找兴田德润优化方案官网电子版
  • 在国外怎么做网站文档里网站超链接怎么做
  • 建立一个网站多少钱WordPress站群更新
  • 东海县建设局网站中国建设网官方网站企业
  • 南昌网站建设哪家比较好找黄岩做网站企业
  • 玉溪市网站建设推广自己的网站做app
  • 襄阳专业网站建设wordpress拉黑用户
  • 衡阳网站开发培训建立个人网站需要什么
  • 深圳做营销网站公司哪家好wordpress登录及注册
  • 新鸿儒做网站wordpress有几张表
  • 台州网站建设蓝渊个人网站怎么做支付功能
  • 如何制作网站导航广告发布与制作
  • 娄底企业网站建设公司房地产交易网站
  • 万峰科技.jsp网站开发四酷全书[m]做网站宁波大点的网络公司
  • 做网站需要材料手机网站设计趋势