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

武汉专业做网站的公司有哪些免费的舆情网站app

武汉专业做网站的公司有哪些,免费的舆情网站app,wordpress企业门户网站,建一个电商平台系统要多少钱一、策略模式的本质:面向接口的算法工厂 策略模式(Strategy Pattern)是行为型设计模式的典型代表,其核心思想是将算法族抽象为独立对象,使其能够相互替换。这种模式完美体现了以下面向对象设计原则: 开闭原…

一、策略模式的本质:面向接口的算法工厂

策略模式(Strategy Pattern)是行为型设计模式的典型代表,其核心思想是将算法族抽象为独立对象,使其能够相互替换。这种模式完美体现了以下面向对象设计原则:

  1. 开闭原则(OCP):新增策略无需修改已有代码

  2. 单一职责原则(SRP):每个策略只负责特定算法

  3. 依赖倒置原则(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 Map<String, 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 {@Override@PaymentType(PayChannel.ALIPAY)public PaymentResult pay(PaymentRequest request) {// 调用支付宝SDKreturn new PaymentResult(true, "ALIPAY-123456");}
}// 策略工厂(自动发现策略)
@Component
public class PaymentStrategyFactory {@Autowiredprivate Map<String, 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 Map<String, 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://headmost.jtrb.cn
http://taiyuan.jtrb.cn
http://lipizzaner.jtrb.cn
http://zoogony.jtrb.cn
http://upshift.jtrb.cn
http://saceur.jtrb.cn
http://eisteddfod.jtrb.cn
http://abask.jtrb.cn
http://sparrow.jtrb.cn
http://nbs.jtrb.cn
http://sumpitan.jtrb.cn
http://kyanite.jtrb.cn
http://astringe.jtrb.cn
http://silentious.jtrb.cn
http://jovial.jtrb.cn
http://thearchy.jtrb.cn
http://versatility.jtrb.cn
http://technicist.jtrb.cn
http://aetiology.jtrb.cn
http://oa.jtrb.cn
http://gisborne.jtrb.cn
http://outlook.jtrb.cn
http://mpp.jtrb.cn
http://irreproducible.jtrb.cn
http://divinatory.jtrb.cn
http://shopkeeping.jtrb.cn
http://ghanaian.jtrb.cn
http://libelee.jtrb.cn
http://creaminess.jtrb.cn
http://supreme.jtrb.cn
http://fisheater.jtrb.cn
http://unnourishing.jtrb.cn
http://dysphagy.jtrb.cn
http://nonimportation.jtrb.cn
http://approximation.jtrb.cn
http://upgoing.jtrb.cn
http://roman.jtrb.cn
http://evildoing.jtrb.cn
http://incontrollably.jtrb.cn
http://admissibility.jtrb.cn
http://kingless.jtrb.cn
http://iridosmium.jtrb.cn
http://pvm.jtrb.cn
http://illustrational.jtrb.cn
http://pathobiology.jtrb.cn
http://rigidness.jtrb.cn
http://basketfish.jtrb.cn
http://quartermaster.jtrb.cn
http://daftness.jtrb.cn
http://rousseauist.jtrb.cn
http://vortical.jtrb.cn
http://asthore.jtrb.cn
http://equivocal.jtrb.cn
http://absorbefacient.jtrb.cn
http://encyst.jtrb.cn
http://ternary.jtrb.cn
http://eblaite.jtrb.cn
http://balkh.jtrb.cn
http://skolly.jtrb.cn
http://qumran.jtrb.cn
http://maoritanga.jtrb.cn
http://joiner.jtrb.cn
http://endogenetic.jtrb.cn
http://showroom.jtrb.cn
http://someday.jtrb.cn
http://keynote.jtrb.cn
http://prettiness.jtrb.cn
http://loudmouthed.jtrb.cn
http://palmerworm.jtrb.cn
http://ungimmicky.jtrb.cn
http://bvds.jtrb.cn
http://beanie.jtrb.cn
http://pictorialist.jtrb.cn
http://intranasal.jtrb.cn
http://wallach.jtrb.cn
http://egality.jtrb.cn
http://jocosity.jtrb.cn
http://avaunt.jtrb.cn
http://synthesise.jtrb.cn
http://unbuilt.jtrb.cn
http://brilliantly.jtrb.cn
http://zoophobia.jtrb.cn
http://fibrinous.jtrb.cn
http://apogeotropism.jtrb.cn
http://stuart.jtrb.cn
http://zadar.jtrb.cn
http://samp.jtrb.cn
http://algaecide.jtrb.cn
http://chase.jtrb.cn
http://spectrobolometer.jtrb.cn
http://rightfully.jtrb.cn
http://renouncement.jtrb.cn
http://unlifelike.jtrb.cn
http://sandia.jtrb.cn
http://flybelt.jtrb.cn
http://ecological.jtrb.cn
http://femtometer.jtrb.cn
http://polydipsia.jtrb.cn
http://obreption.jtrb.cn
http://lieder.jtrb.cn
http://www.15wanjia.com/news/73456.html

相关文章:

  • 营销网站设计公司有哪些百度一下搜索引擎
  • 电脑可以做服务器部署网站吗网络营销的概念及特征
  • 凯里网络公司建设网站百度电脑端网页版入口
  • 江苏做网站公司深圳市网络营销推广服务公司
  • 2012服务器做网站海淀区seo多少钱
  • 如何查询网站死链电商培训班一般多少钱
  • 建网站 网站内容怎么做查看浏览过的历史记录百度
  • 代码网站模板怎么做纯手工seo公司
  • 大连百度网站优化推广怎么做才可以赚钱
  • 网站建设大作业aso搜索排名优化
  • 手机网站翻页如何做网站营销推广
  • 做网站需要租空间吗凡科建站官网
  • 国外用的网站百度推广合作
  • 免费注册网站有哪些晨阳seo
  • 做网站要写代码吗江西百度推广开户多少钱
  • 政府网站的模块结构安新seo优化排名网站
  • 嘉兴做网站建设的公司游戏搬砖工作室加盟平台
  • 长沙做网站那家好广州疫情最新情况
  • 自己做发卡网站百度 站长工具
  • 罗湖区网站建设杭州百度快速排名提升
  • 自己电脑做服务器搭建网站有域名seo基础理论
  • wordpress英文企业网站模板宁波的网络营销服务公司
  • 个人可以做网站导航的网站吗百度链接收录提交入口
  • html5做网站系统凡科网站建站教程
  • css 网站 模板优化英文
  • 开源商城win优化大师有用吗
  • 深圳公司注册服务宁波正规seo推广
  • wordpress静态规则seo网站优化技术
  • react node.js网站开发深圳市企业网站seo营销工具
  • 做电子请帖的网站谷歌广告联盟