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

怀化网络有限公司wordpress优化cookie

怀化网络有限公司,wordpress优化cookie,网站建设比较合理的流程是,乐山做美食推荐的网站这两天学习了策略模式和模板模式#xff0c;总结一下这两种模式。 一、策略模式 策略模式的使用场景主要是同一类行为的不同实现上#xff0c;如 不同类型的交易⽅式(信⽤卡、⽀付宝、微信)、⽣成唯⼀ID策略 (UUID、DB⾃增、DBRedis、雪花算法、Leaf算法) 策略模式主要有…这两天学习了策略模式和模板模式总结一下这两种模式。 一、策略模式 策略模式的使用场景主要是同一类行为的不同实现上如 不同类型的交易⽅式(信⽤卡、⽀付宝、微信)、⽣成唯⼀ID策略 (UUID、DB⾃增、DBRedis、雪花算法、Leaf算法) 策略模式主要有下面这3个类 方法接口具体的多个不同实现策略选择类 下面举一个具体的例子在抽奖的时候有不同的抽奖策略下面这个例子有两个抽奖策略的实现 方法接口 public interface IDrawAlgorithm {/*** SecureRandom 生成随机数索引到对应的奖品信息返回结果** param strategyId 策略ID* param excludeAwardIds 排除掉已经不能作为抽奖的奖品ID留给风控和空库存使用* return 中奖结果*/String randomDraw(Long strategyId, ListString excludeAwardIds);} 策略实现类 策略1 Component(singleRateRandomDrawAlgorithm) public class SingleRateRandomDrawAlgorithm extends BaseAlgorithm {Overridepublic String randomDraw(Long strategyId, ListString excludeAwardIds) {// 策略1实现return awardId;}}策略2 Component(entiretyRateRandomDrawAlgorithm) public class EntiretyRateRandomDrawAlgorithm extends BaseAlgorithm {Overridepublic String randomDraw(Long strategyId, ListString excludeAwardIds) {// 策略2实现// 返回中奖结果return awardId;}}策略选择类 public class StrategyContext {private IDrawAlgorithm drawAlgorithm;public StrategyContext(IDrawAlgorithm drawAlgorithm) {this.drawAlgorithm drawAlgorithm;}public String randomDraw(Long strategyId, ListString excludeAwardIds) {return drawAlgorithm.randomDraw(strategyId, excludeAwardIds);} } 测试 public static void main(String[] args) {StrategyContext strategyContext new StrategyContext(new SingleRateRandomDrawAlgorithm());strategyContext.randomDraw(10001L, new ArrayList());} 二、模板模式 当一个事情可以流程化来做的时候可以使用模板模式来开发模版模式中有下面几个流程 定义接口在抽象类中实现接口并且将模板定义在抽象类中具体的实现类继承抽象类实现自己特有的逻辑公共的逻辑在抽象类中实现 下面是一个抽奖的例子将抽奖的流程固定在模板抽象类中 定义接口 public interface IDrawExec {/*** 抽奖方法* param req 抽奖参数用户ID、策略ID* return 中奖结果*/DrawResult doDrawExec(DrawReq req);} 在抽象类中实现接口并且将模板定义在抽象类中 这里面获取不在抽奖范围内的列表和执行抽奖算法步骤是包含业务逻辑的这些可以在子类中实现公共的放在抽象类中。 public abstract class AbstractDrawBase extends DrawStrategySupport implements IDrawExec {private Logger logger LoggerFactory.getLogger(AbstractDrawBase.class);Overridepublic DrawResult doDrawExec(DrawReq req) {// 1. 获取抽奖策略StrategyRich strategyRich super.queryStrategyRich(req.getStrategyId());Strategy strategy strategyRich.getStrategy();// 2. 校验抽奖策略是否已经初始化到内存this.checkAndInitRateData(req.getStrategyId(), strategy.getStrategyMode(), strategyRich.getStrategyDetailList());// 3. 获取不在抽奖范围内的列表包括奖品库存为空、风控策略、临时调整等ListString excludeAwardIds this.queryExcludeAwardIds(req.getStrategyId());// 4. 执行抽奖算法String awardId this.drawAlgorithm(req.getStrategyId(), drawAlgorithmGroup.get(strategy.getStrategyMode()), excludeAwardIds);// 5. 包装中奖结果return buildDrawResult(req.getuId(), req.getStrategyId(), awardId);} 具体的实现类继承抽象类实现自己特有的逻辑 public class DrawExecImpl extends AbstractDrawBase {private Logger logger LoggerFactory.getLogger(DrawExecImpl.class);Overrideprotected ListString queryExcludeAwardIds(Long strategyId) {// 获取不在抽奖范围内的列表逻辑return awardList;}Overrideprotected String drawAlgorithm(Long strategyId, IDrawAlgorithm drawAlgorithm, ListString excludeAwardIds) {// 抽奖逻辑return isSuccess ? awardId : null;}}
http://www.pierceye.com/news/161959/

相关文章:

  • 浙江省互联网建设网站python开发手机网站开发
  • 做网站需要多少钱一年动漫制作技术是学什么
  • 刘洋网站建设 够完美保卫处网站建设
  • 个人怎么申请营业执照北京朝阳区优化
  • 免费的舆情网站不用下载直接打开江西城乡建设网站
  • 那些网站是做金融行业网站主目录权限配置
  • 本地网站做不大wordpress 安全设置
  • 宁波教育平台网站建设广告行业怎么找客户
  • php企业网站开发实验总结商城网站建设模板
  • 单词优化和整站优化建设银行的网站特点
  • 厦门淘宝网站设计公司wordpress大前端dux5.2
  • 淮南网站seo网络信息发布平台
  • 网站自己做流量如何查询网站被百度收录情况
  • 网络营销网站源码做网站中怎么设置单张图片
  • 怎么做淘宝客网站网站定位代码
  • 自己给网站做logo卓成建设集团有限公司网站
  • 西宁建设网站软件徐州集团网站建设公司
  • 做网站卖设备找哪家好百度智能云windows系统服务器建站
  • 长沙企业做网站专门查企业信息的网站
  • 比较权威的房产网站百度网盘官网登陆入口
  • 金融商城快捷申请网站模板下载安全电子商务网站设计
  • 公司网站建设重要性天津建设交培训中心网站
  • 成都网站制作东三环论文一区二区三区是什么意思
  • 织梦图片瀑布流网站模板成都大型网站维护公司
  • 企业信息网站wordpress怎么调用m3u8视频
  • 前端怎么接私活做网站中文h5编程工具
  • wordpress模板 站长营销型网站开发
  • 广西南宁市住房和城乡建设局网站网络平台怎么建
  • 徐州提供网站建设报价表手机微网站怎么做
  • 建设汽车行业网站网站建设规划书百度文库