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

网站建站授权模板下载wordpress爬虫ca

网站建站授权模板下载,wordpress爬虫ca,网站有域名怎么和做的网页链接,亚马逊网站网址相同点 解耦思想 两者都通过接口/抽象类将实现与调用方解耦,降低模块间的直接依赖。 符合开闭原则 新增策略或产品时,只需扩展新类,无需修改已有代码。 封装变化 策略模式封装算法的变化,工厂模式封装对象创建的变化。 不同…
相同点
  1. 解耦思想

    • 两者都通过接口/抽象类将实现与调用方解耦,降低模块间的直接依赖。

  2. 符合开闭原则

    • 新增策略或产品时,只需扩展新类,无需修改已有代码。

  3. 封装变化

    • 策略模式封装算法的变化,工厂模式封装对象创建的变化


不同点
维度策略模式工厂模式
类型行为型设计模式(关注做什么创建型设计模式(关注如何创建
核心目标动态选择算法/行为统一创建对象,隐藏实例化细节
运行时行为允许在运行时切换策略(如支付方式)通常在创建时确定对象类型(如生成Logger)
客户端依赖客户端直接依赖策略接口客户端依赖工厂类和产品接口
典型场景支付方式、排序算法、数据解析策略数据库连接、日志工具、UI组件生成

代码示例对比

场景:支付系统(策略模式 + 工厂模式结合)

java

复制

// ---------------------- 策略模式部分 ----------------------
interface PaymentStrategy {void pay(double amount);
}class AlipayStrategy implements PaymentStrategy {public void pay(double amount) {System.out.println("支付宝支付: " + amount);}
}class WechatPayStrategy implements PaymentStrategy {public void pay(double amount) {System.out.println("微信支付: " + amount);}
}// ---------------------- 工厂模式部分 ----------------------
class PaymentStrategyFactory {public static PaymentStrategy createStrategy(String type) {switch (type.toLowerCase()) {case "alipay": return new AlipayStrategy();case "wechat": return new WechatPayStrategy();default: throw new IllegalArgumentException("不支持的支付类型");}}
}// ---------------------- 上下文类(策略模式) ----------------------
class PaymentContext {private PaymentStrategy strategy;public PaymentContext(PaymentStrategy strategy) {this.strategy = strategy;}public void executePayment(double amount) {strategy.pay(amount);}
}// ---------------------- 客户端使用 ----------------------
public class Client {public static void main(String[] args) {// 工厂模式创建策略对象PaymentStrategy alipay = PaymentStrategyFactory.createStrategy("alipay");PaymentContext context = new PaymentContext(alipay);// 策略模式动态执行支付context.executePayment(100.0);  // 输出: 支付宝支付: 100.0}
}

关键区别总结

  1. 目的不同

    • 策略模式:解决行为的灵活切换问题(如不同支付逻辑)。

    • 工厂模式:解决对象创建的复杂性问题(如不同支付对象的初始化)。

  2. 交互时机

    • 策略模式:客户端通过上下文类主动切换策略(如 setStrategy())。

    • 工厂模式:客户端通过工厂类被动获取对象(如 createStrategy())。

  3. 适用阶段

    • 策略模式:在对象已存在时,动态改变其行为。

    • 工厂模式:在对象创建时决定其类型。


结合使用场景

在实际开发中,策略模式常与工厂模式结合

  1. 用工厂模式创建策略对象(隐藏创建细节)。

  2. 用策略模式管理策略的切换(动态修改行为)。

例如:电商系统中,通过工厂生成不同的促销策略(满减、折扣),再通过策略模式动态切换。

http://www.dtcms.com/a/473507.html

相关文章:

  • 做的网站怎么联网长春制作网站软件
  • FPGA 中的 AXI 总线介绍
  • 指针和动态分配
  • 【OPENGL ES 3.0 学习笔记】第一天:什么是EGL
  • 【第十七周】自然语言处理的学习笔记02
  • 解锁LangChain:Python构建大语言模型应用全攻略
  • Android 事件分发学习心得
  • TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 使用Keras实现分类问题
  • Happens-Before原则
  • 自己设置网站怎么做永远网站建设
  • 做网站的软件景宁县建设局网站
  • react多文件分片上传——支持拖拽与进度展示
  • Excel如何合并单元格?【图文详解】Excel合并单元格技巧?单元格合并高阶操作?
  • Fabric.js 完全指南:从入门到实战的Canvas绘图引擎详解
  • 学网站建设要多少钱遵义网站建设网站
  • 数据分析:Python懂车帝汽车数据分析可视化系统 爬虫(Django+Vue+销量分析 源码+文档)✅
  • 从Java集合到云原生现代数据管理的演进之路
  • 03_pod详解
  • 线性代数 | excellent algebraic space
  • 计算机网络篇之TCP滑动窗口
  • java项目使用宝塔面板部署服务器nginx不能反向代理找到图片资源
  • 180课时吃透Go语言游戏后端开发11:Go语言中的并发编程
  • 江苏建设部官方网站纯 flash 网站
  • Oracle OMF 配置文档
  • 帮别人做网站怎么赚钱wordpress 静态设置
  • SpringBoot Jar包冲突在线检测
  • 基于OpenCV的通过人脸对年龄、性别、表情与疲劳进行检测
  • vue3 类似 Word 修订模式,变更(插入、删除、修改)可以实时查看标记 如何实现
  • LLM 笔记 —— 07 Tokenizers(BPE、WordPeice、SentencePiece、Unigram)
  • Serverless数据库架构:FaunaDB+Vercel无缝集成方案