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

义乌网站网站导航怎么做的

义乌网站,网站导航怎么做的,seo获客,深圳软件公司扶持政策一、说明 策略模式是一种行为设计模式#xff0c;它定义了一系列算法#xff0c;将每个算法封装起来#xff0c;并使它们可以互相替换。 (一) 解决问题 在需要根据不同情况选择不同算法或策略#xff0c;规避不断开发新需求后#xff0c;代码变得非常臃肿难以维护管理。… 一、说明 策略模式是一种行为设计模式它定义了一系列算法将每个算法封装起来并使它们可以互相替换。 (一) 解决问题 在需要根据不同情况选择不同算法或策略规避不断开发新需求后代码变得非常臃肿难以维护管理。 (二) 使用场景 当一个类有多个行为而且这些行为在不同的情况下有不同的实现时当需要在运行时动态地选择算法时当一个类的一部分行为是固定的一部分是可变的时可以使用策略模式来封装可变的部分 二、结构 上下文Context维护指向具体策略的引用且仅通过策略接口与该对象进行交流。策略Strategy接口是所有具体策略的通用接口它声明了一个上下文用于执行策略的方法。具体策略ConcreteStrategies实现了上下文所用算法的各种不同变体。当上下文需要运行算法时它会在其已连接的策略对象上调用执行方法。上下文不清楚其所涉及的策略类型与算法的执行方式。客户端Client会创建一个特定策略对象并将其传递给上下文。上下文则会提供一个设置器以便客户端在运行时替换相关联的策略。 三、伪代码 #!/usr/bin/env python # -*- coding: UTF-8 -*- __doc__ 策略模式例商场优惠活动选择不同的优惠策略最后计算的价格也不同。而如果增加新算法只需增加一个策略类无需修改现有代码 from abc import ABC, abstractmethodclass DiscountStrategy(ABC):抽象策略类abstractmethoddef apply_discount(self, price):passclass PercentDiscount(DiscountStrategy):具体策略类打折策略def __init__(self, discount_percent):self.discount_percent discount_percentdef apply_discount(self, price):return price * (1 - self.discount_percent / 100)class FullReduction(DiscountStrategy):具体策略类满减策略def __init__(self, full_price, reduction_price):self.full_price full_priceself.reduction_price reduction_pricedef apply_discount(self, price):return price - (price // self.full_price) * self.reduction_priceclass Promotion:上下文类商场促销def __init__(self, discount_strategy):self.discount_strategy discount_strategydef apply_discount(self, price):return self.discount_strategy.apply_discount(price)if __name__ __main__:打折后价格80.0满减后价格100# 商品原价original_price 100# 选择打折策略打8折promotion Promotion(PercentDiscount(20))discounted_price promotion.apply_discount(original_price)print(f打折后价格{discounted_price})# 选择满减策略满200减50promotion Promotion(FullReduction(200, 50))discounted_price promotion.apply_discount(original_price)print(f满减后价格{discounted_price})四、优缺点 优点 灵活性和可扩展性策略模式将算法封装成独立的类使得可以独立地添加、修改或替换算法而不影响到客户端的代码从而提高了代码的灵活性和可扩展性。易于维护由于算法被封装在独立的类中使得每个算法都有自己的类易于理解和维护。避免条件语句的使用策略模式避免了使用大量的条件语句来选择不同的算法使得代码更加清晰和易于理解。符合开闭原则策略模式符合开闭原则即对扩展开放对修改关闭可以通过添加新的策略类来扩展功能而不需要修改现有的代码。 缺点 增加了类的数量每个具体策略都需要一个对应的策略类可能会增加类的数量。客户端必须知道所有的策略类客户端必须知道所有的策略类并且在使用时需要显式地选择合适的策略类这可能会增加客户端的复杂性。如果算法极少发生改变那么没有任何理由引入新的类和接口。使用该模式只会让程序过于复杂。 【Python笔记】设计模式-CSDN博客
http://www.zqtcl.cn/news/492754/

相关文章:

  • 开了360网站卫士ssl如何做301深圳制作网站开发费用
  • 在哪里做马可波罗网站公众号自己做电影网站
  • 网站建设音乐插件怎么弄陕西城乡建设部网站首页
  • 全国免费自学网站打开百度网站首页
  • 国外网站开发公司晋江论坛网
  • 问卷调查网站个人网站源码免费下载
  • 网站备案信息核验单填写建设企业网站价钱
  • 相城建设监理有限公司网站网页设计中html代码
  • 做农产品网站高端汽车
  • 工信部网站首页wordpress网站搬家vps
  • wordpress 淘客插件长沙排名优化公司
  • 网站首页怎么制作过程如何自己创作一个游戏
  • 自己做企业网站在哪学习建网站
  • 门户网站建设 突出服务学习电子商务网站建设与管理的收获
  • 做网站排名大概要多少免费做个人网站
  • 哈尔滨网站建设效果wordpress主题 手机app
  • 收录网站源码海外域名怎么打开
  • 荥阳网站建设上海十大营销策划公司
  • 在网站挂广告一个月多少钱巫溪网站建设
  • 网站备案名称的影响吗济南网站建设招聘
  • 南城区网站建设公司y2学年做的租房网站
  • 温州网站建设咨询网站源码下载后怎么布置
  • 邢台网站推广wordpress文章数据库位置
  • wordpress 快站wordpress 安装主题 主机名
  • 老网站改版启用二级域名网站建设服务是什么意思
  • 网站建设营销话术外销网站
  • 找个人给我做电影网站好主题网站开发介绍
  • 运城公司网站建设苏州网站建设苏州
  • 湖北省住房和建设厅网站首页网站用免费空间好不好
  • 网站建设公司案例做网站小图标大全