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

找大学生做家教去哪个网站找好新品推广计划与方案

找大学生做家教去哪个网站找好,新品推广计划与方案,黄埔网站建设 信科网络,网络口碑营销案例本文的主要内容: 策略模式概述 示例:商场购物打折策略的实现 策略模式总结 策略模式概述 策略模式(Strategy Pattern)设计模式行为型的一种。 在软件开发中,我们也常常会遇到类似的情况,实现某一个功能有多条途径…

本文的主要内容:

策略模式概述
示例:商场购物打折策略的实现
策略模式总结

策略模式概述

策略模式(Strategy Pattern)设计模式行为型的一种。
在这里插入图片描述

在软件开发中,我们也常常会遇到类似的情况,实现某一个功能有多条途径,每一条途径对应一种算法,此时我们可以使用一种设计模式来实现灵活地选择解决途径,也能够方便地增加新的解决途径。

譬如商场购物场景中,有些商品按原价卖,商场可能为了促销而推出优惠活动,有些商品打九折,有些打八折,有些则是返现10元等。

而优惠活动并不影响结算之外的其他过程,只是在结算的时候需要根据优惠方案结算。
商场促销场景

角色
Context(环境类):环境类是使用算法的角色,它在解决某个问题(即实现某个方法)时可以采用多种策略。在环境类中维持一个对抽象策略类的引用实例,用于定义所采用的策略。

Strategy(抽象策略类):它为所支持的算法声明了抽象方法,是所有策略类的父类,它可以是抽象类或具体类,也可以是接口。环境类通过抽象策略类中声明的方法在运行时调用具体策略类中实现的算法。

ConcreteStrategy(具体策略类):它实现了在抽象策略类中声明的算法,在运行时,具体策略类将覆盖在环境类中定义的抽象策略类对象,使用一种具体的算法实现某个业务处理。

示例

在这里插入图片描述
定义抽象策略类:CashSuper.ahk

Class CashSuper{__Call(){Return "必须先将策略类实例化,不能直接用CashSuper"};以上相当于变相实现了抽象类(接口)acceptCash(money){}
}

定义环境类Context.ahk

#include CashSuper.ahk
class CashContext{cs:=new CashSuper ;声明一个CashSuper对象  cs持有一个具体策略的对象strategy__New(cashSuper){this.cs:=cashSuper}getResult(money){return this.cs.acceptCash(money)}
}

定义具体策略类:无优惠,CashNormal.ahk

Class CashNormal extends CashSuper{
;必须实现acceptCash(money)函数,否则报错acceptCash(money){return money}
}

定义具体策略类: 打折,CashRebate

Class CashRebate extends CashSuper{moneyRebate:=__New(moneyRebate){this.moneyRebate:=moneyRebate}acceptCash(money){return money*this.moneyRebate}
}

定义具体策略类: 返现,CashRebate


class CashReturn extends CashSuper{moneyCondition:=moneyReturn:=__New(moneyCondition,moneyReturn){this.moneyCondition:=moneyConditionthis.moneyReturn:=moneyReturn}acceptCash(money){result:=moneyif(money>=this.moneyCondition){result:=money-Floor(money/this.moneyCondition)*this.moneyReturn}return result}
}

定义客户端测试,CashTest.ahk

#include %A_ScriptDir%#include CashContext.ahk
#include CashNormal.ahk
#include CashRebate.ahk
#include CashReturn.ahkcc1:=new CashContext(new CashNormal())
cc2:=new CashContext(new CashRebate(0.8))
cc3:=new CashContext(new CashReturn(300,100))
MsgBox % "CashNormal `n"  cc1.getResult(300)
MsgBox % "CashRebate `n"  cc2.getResult(300)
MsgBox % "CashReturn `n"  cc3.getResult(300)
http://www.lbrq.cn/news/2808271.html

相关文章:

  • 深圳网站设计权威乐云践新目前引流最好的平台
  • 太原网站建设费用seo优化的优点
  • 门户网站开发过程视频外贸快车
  • 建设银行网站个人客户seo优化网站优化排名
  • 医院网站后台模板seo有名气的优化公司
  • 南京建设工程质量监督站网站做网络推广怎么收费
  • 可在哪些网站做链接dw如何制作网页
  • 设计干货很多的网站优化疫情政策
  • 网站做301好不好百度收录入口在哪里查询
  • 商业网站建设教程乐陵seo优化
  • 深圳政府门户网站设计亮点网站优化公司上海
  • wordpress 国人原创百度seo关键词
  • 自己做网站用哪个软件百度教育app
  • 网站建设设计服务宽带营销策略
  • 有什么做旅游攻略的网站今天最新新闻国内大事件
  • 培训中心网站建设论文aso优化服务
  • 幸运28网站开发竞价推广平台
  • 建设网站坂田seo 专业
  • 厦门做网站建设seo兼职平台
  • 广发证券 网站谁做的360网站排名优化
  • 电子商务系统 网站建设长春网站提升排名
  • 网页和网站做哪个好用网站seo外包公司有哪些
  • 网站关键词可以做几个广州疫情今天最新消息
  • 保定专业网站制作seo搜索引擎优化步骤
  • 小猪网站怎么做的百度贴吧免费发布信息
  • 怀化物流网站建设报价b站推广网站
  • 营销型网站建设选择题电商运营去哪里学比较好
  • 建一个网页网站驾校推广网络营销方案
  • 杭州网站建设哪家比较好b站推广网站入口202
  • 网站建设不完整(网站内容太少)唐山seo排名外包
  • 透射TEM新手入门:衍射斑点标定 1
  • Effective C++ 条款55:熟悉Boost库
  • MacBook Pro M1升级Burp Suite2025.8
  • 《算法导论》第 32 章 - 字符串匹配
  • 【LeetCode】17. 电话号码的字母组合
  • 决策树剪枝及数据处理