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

网站建设的基本要求手机网站开发视频教程

网站建设的基本要求,手机网站开发视频教程,网站怎么上传ftp,湖南微网站开发🧠 策略模式(Strategy Pattern) 策略模式是一种行为型设计模式,它允许定义一系列的算法或行为,然后将每个算法封装到一个类中,使得它们可以互换。策略模式让算法独立于使用它的客户端进行变化,…

🧠 策略模式(Strategy Pattern)

策略模式是一种行为型设计模式,它允许定义一系列的算法或行为,然后将每个算法封装到一个类中,使得它们可以互换。策略模式让算法独立于使用它的客户端进行变化,从而使得算法的变更不影响到使用它的客户端。


🎯 为什么需要策略模式?

  1. 避免大量的条件语句(if-else):如果对象需要根据不同的策略(或行为)执行不同的操作,使用策略模式可以避免在代码中频繁出现 if-elseswitch 语句。
  2. 高内聚低耦合:策略模式将每个策略封装到独立的类中,增强了代码的高内聚性,并且减少了类与类之间的耦合。
  3. 动态切换策略:策略模式使得策略可以在运行时动态地切换,提供了灵活性。
  4. 开放封闭原则:策略模式符合开放封闭原则,可以通过新增策略类来扩展系统的功能,而不需要修改已有代码。

优缺点分析

优点缺点
可以通过改变策略动态改变行为增加了类的数量
避免了多重条件语句(如 if-else)客户端必须了解所有的策略类
提高了系统的可维护性如果策略过多,可能会使系统变得复杂
每个策略类相对独立,方便扩展和替换需要明确的选择策略的时机

🧩 Python 示例:支付系统

假设我们有一个支付系统,支持不同的支付方式,比如 信用卡支付支付宝支付微信支付。每种支付方式有不同的支付策略。

🎯 1️⃣ 策略接口(Strategy)

from abc import ABC, abstractmethodclass PaymentStrategy(ABC):@abstractmethoddef pay(self, amount: float):pass
  • PaymentStrategy 是一个支付策略的接口,所有具体的支付方式(如信用卡支付、支付宝支付等)都需要实现 pay() 方法。

🎯 2️⃣ 具体策略类(Concrete Strategies)

class CreditCardPayment(PaymentStrategy):def pay(self, amount: float):print(f"Paid {amount} using Credit Card")class AlipayPayment(PaymentStrategy):def pay(self, amount: float):print(f"Paid {amount} using Alipay")class WeChatPayment(PaymentStrategy):def pay(self, amount: float):print(f"Paid {amount} using WeChat Pay")
  • CreditCardPayment:实现了通过信用卡支付的方法。
  • AlipayPayment:实现了通过支付宝支付的方法。
  • WeChatPayment:实现了通过微信支付的方法。

🎯 3️⃣ 上下文类(Context)

class PaymentContext:def __init__(self, strategy: PaymentStrategy):self._strategy = strategy  # 初始化时传入策略对象def set_strategy(self, strategy: PaymentStrategy):self._strategy = strategy  # 允许动态切换策略def pay(self, amount: float):self._strategy.pay(amount)  # 使用当前策略进行支付
  • PaymentContext 类负责使用具体的策略进行支付。它持有一个策略对象,并通过 pay() 方法委托给当前策略对象执行支付操作。
  • set_strategy() 方法允许在运行时动态切换支付方式。

🎯 4️⃣ 客户端代码(使用策略进行支付)

# 创建不同的支付策略
credit_card_payment = CreditCardPayment()
alipay_payment = AlipayPayment()
wechat_payment = WeChatPayment()# 创建支付上下文并使用策略进行支付
payment_context = PaymentContext(credit_card_payment)
payment_context.pay(100)  # 通过信用卡支付# 切换策略为支付宝支付
payment_context.set_strategy(alipay_payment)
payment_context.pay(200)  # 通过支付宝支付# 切换策略为微信支付
payment_context.set_strategy(wechat_payment)
payment_context.pay(300)  # 通过微信支付

输出结果

Paid 100 using Credit Card
Paid 200 using Alipay
Paid 300 using WeChat Pay

🧭 类图(Mermaid)

使用策略
«interface»
PaymentStrategy
+pay(amount: float)
CreditCardPayment
+pay(amount: float)
AlipayPayment
+pay(amount: float)
WeChatPayment
+pay(amount: float)
PaymentContext
+set_strategy(strategy: PaymentStrategy)
+pay(amount: float)

🧭 流程图(Mermaid)

User PaymentContext CreditCardPayment AlipayPayment WeChatPayment set_strategy(CreditCardPayment) pay(100) set_strategy(AlipayPayment) pay(200) set_strategy(WeChatPayment) pay(300) User PaymentContext CreditCardPayment AlipayPayment WeChatPayment

🧠 应用场景总结

场景示例
支付方式切换电子商务网站支持不同的支付方式,如信用卡支付、支付宝支付等
排序策略系统中需要实现多种排序算法,可以使用策略模式进行切换
游戏AI游戏中不同角色有不同的战斗策略,可以使用策略模式进行管理

总结口诀

策略模式
✅ 将每种行为或算法封装成独立的策略类,客户端通过选择不同的策略来改变行为。
✅ 适用于需要在运行时动态改变算法或行为的场景。


如果你有任何问题或需要进一步的解释,随时告诉我!

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

相关文章:

  • 购物网站建设需要什么资质wordpress install
  • 国内专业网站制作贺州住房和城乡建设部网站
  • Python 列表排序:快速掌握排序方法
  • 在盐城做网站的网络公司电话网站开发 参考文献
  • 奉化区建设局网站贵州省贵州省建设厅网站
  • 网站规划文案做移动网站优化
  • 郑州网站权重京东官方网上商城
  • C++ 类的学习(四) 继承
  • 企业网站建设开发四个阶段厦门企业网站排名优化
  • 深圳微商城网站制作多少钱郑州网站设计 郑州网站开发
  • 成都网站设计网站制作公司互联网门户网站建设
  • 国际网站怎么进免费分销方案如何打造更强的分销团队
  • 衡水制作网站哪些网站能够免费做公考题
  • 唐山网站制作系统做企业网站首页尺寸
  • 郑州哪家公司给国外做网站毛坯房最便宜装修方法
  • 电影网站开发任务书北京大型网站建设公司
  • 怎样选择网站服务器求职设计师的个人简历模板
  • 阿里云部署一个自己做的网站吗网站建设需要哪些成本
  • 多点网络网站制作系统网站备案服务内容
  • 上海网站排名seo公司哪家好苏州建筑设计公司
  • 【C++篇】C++11:右值引用与移动语义
  • 红色博客网站源码中交建设集团网站
  • 西安网站建设哪家好一些农业局网站建设方案
  • 知乎 淘宝网站建设php英文商城网站建设
  • 建设工程信息发布网站用h5开发的网站模板下载
  • 免费源码交易网站源码廊坊建站
  • 当.NET 9遇见AI智能体:AntSK企业级知识库的技术革命与实战解析
  • 哪个网站做长图免费转高清高端网站建设个人
  • 海原网站建设在线代理上网
  • 网上购物网站模板安装wordpress 403