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

app和微网站的区别是什么普通营业执照有做网站条件吗

app和微网站的区别是什么,普通营业执照有做网站条件吗,10大免费软件下载,现在一般做网站用什么技术一、策略模式的本质#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/14313197/

相关文章:

  • 江宁网站建设制作网站不备案可以上线吗
  • 广州建设网站的公司哪家好怎么做二级域名网站
  • 潍坊网站建设官网烟台网站建设工资
  • 网校网站建设多少钱中山 网站关键词优化
  • 关于网站建设的调查报告建网站 考虑
  • 做网站推广怎么做杭州市招投标交易中心
  • intitlt:山西大同网站建设wordpress碎语插件
  • 杭州酒店网站建设方案wordpress 新网站 代码
  • 济南网站建设山东聚搜网见效快wordpress上传附件类型
  • 物流网站建设推广asp.net网站开发菜鸟
  • 夺宝网站制作金坛网站建设
  • 布吉网站建设方案网站建设公司的正反
  • 无后台网站的维护wordpress 静态规则
  • 建筑网站建设方案图片外链生成器
  • 优秀国外设计网站app物流网站平台建设
  • 手机网站百度关键词排名查询襄阳谷城网站建设
  • 网站轮播广告动画怎么做网络维护公司创业计划书
  • 网站背景图片怎么做一个网站需要几个人
  • 查 网站接入服务提供者名称免费一级域名网站
  • 做旅游网站选什么空间做推广什么网站便宜
  • 购买网站模板怎么用广告设计是学什么的
  • 承德网站建设咨询wordpress阿里
  • 中国工程建设标准网站移动互联网站开发与维护
  • 定制开发网站网站开发经理具备什么知识
  • 网站设计需求文档范例深圳做网站好的网站建设公司
  • 小型网站设计及建设wordpress浮动广告
  • 泉州市住房和城乡建设部网站工业设计专业怎么样
  • 做网站时最新菜品的背景图展馆装修施工
  • 加强财政门户网站建设工作软件定制开发公司发展前景
  • 佛山网站建设格式有哪些国外手机网站欣赏