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

58同城做网站找谁wordpress 表格插件

58同城做网站找谁,wordpress 表格插件,大连模板网站制作,泸州做网站的公司策略模式介绍 假设你正在开发一个电商平台#xff0c;其中涉及到商品的折扣策略。优惠策略有很多种可能#xff0c;如领取优惠券抵扣、返现促销、拼团优惠等。最初的实现可能会在购物车类中嵌入各种折扣逻辑#xff0c;导致代码的可维护性和扩展性下降。 下面代码在业务开…策略模式介绍 假设你正在开发一个电商平台其中涉及到商品的折扣策略。优惠策略有很多种可能如领取优惠券抵扣、返现促销、拼团优惠等。最初的实现可能会在购物车类中嵌入各种折扣逻辑导致代码的可维护性和扩展性下降。 下面代码在业务开发中经常遇到代码满足了业务需求客户可根据自己的需求选择不同的优惠策略。但是经过一段时间的业务积累促销活动会越来越多。于是程序员就开始经常加班每次上活动之前都要通宵改代码而且要做重复测试判断逻辑可能也会变得越来越复杂。此时我们要思考代码是否需要重构。 public static void main(String[] args) {PromotionActivity promotionActivity  null;String promotionKey  COUPON;if(StringUtils.equals(promotionKey,COUPON)){promotionActivity  new PromotionActivity(new CouponStrategy());}else if(StringUtils.equals(promotionKey,CASHBACK)){promotionActivity  new PromotionActivity(new CashbackStrategy());}//......promotionActivity.execute(); }下面我们看下策略模式如何优雅的解决这个问题。 策略模式是一种行为型设计模式它允许在运行时选择算法的一种方式使得算法可以独立于客户端代码进行变化。在业务代码中使用策略模式可以帮助你实现可维护、可扩展和可变化的代码结构。下面是在业务代码中使用策略模式的一般步骤 1. 定义策略接口 首先定义一个策略接口其中声明了策略的方法或行为。这些方法将在不同的具体策略类中实现。2. 创建具体策略类 创建实现策略接口的具体策略类每个类实现了策略接口中的方法。每个具体策略类代表了一个算法或行为的具体实现。3. 在客户端代码中使用策略 在客户端代码中通过持有策略接口类型的引用可以在运行时选择不同的策略实现。这样客户端代码可以根据需要切换或替换不同的策略。 业务代码中如何使用 现在后端项目基本都是基于 Spring Boot 开发的我们基于 Spring Boot 作为基础框架教你如何使用 Spring 依赖注入的特性优雅的实现策略模式。 既然是策略模式那么定义策略肯定是首当其冲策略我们使用枚举实现最佳 public enum StrategyType {STRATEGY_A(1, 策略A),STRATEGY_B(2, 策略B);private int code;private String desc;StrategyType(int code, String desc) {this.code  code;this.desc  desc;}public int getCode() {return code;}public String getDesc() {return desc;} } 再定义一个接口接口有两个方法getType用来获取策略的业务类型execute用来执行业务 public interface Strategy {void execute();StrategyType getType();} 这里我们实现个策略StrategyA Component(strategyA) public class StrategyA implements Strategy {Overridepublic void execute() {System.out.println(Executing strategy A);}Overridepublic StrategyType getType() {return StrategyType.STRATEGY_A;} } 再实现个策略StrategyB Component(strategyB) public class StrategyB implements Strategy {Overridepublic void execute() {System.out.println(Executing strategy B);}Overridepublic StrategyType getType() {return StrategyType.STRATEGY_B;}} 我们通过定义一个工厂类然后使用 Spring 的依赖注入特性可以注入一个接口的多个实现这里采用 ListStrategy 的形式注入Spring 也支持通过 MapString,Strategy 的形式注入如果使用 Map 注入那么 key 就是类名小伙伴们自己也可以测试一下~ 为方便调用我们需要将ListStrategy转换成MapStrategyType, Strategy结构业务执行时可以直接传递业务参数这里是我们定义的一个业务枚举StrategyType获取Bean。这里我们直接使用Spring的PostConstruct注解在方法上表示此方法是在Spring实例化该Bean之后马上执行此方法。 Service public class StrategyFactory {private MapStrategyType, Strategy strategyMap  new ConcurrentHashMap();Resourceprivate ListStrategy strategyList;public void execute(StrategyType type) {strategyMap.get(type).execute();}PostConstructpublic void init() {for (Strategy strategy : strategyList) {strategyMap.put(strategy.getType(), strategy);}} }最后我们在业务类StrategyService直接使用就行了。 Service public class StrategyService {Resourceprivate StrategyFactory strategyFactory;public void executeStrategy(StrategyType type) {strategyFactory.execute(type);} } 最终结构如下所示 总结 使用 Spring 的依赖注入特性可以注入一个接口的多个实现很容易就实现了策略模式的选择这样后续添加一种策略的时候完全不需要改动主要逻辑只需添加具体实现即可。虽然我们是讲策略模式其实里面还包含了工厂模式。
http://www.hkea.cn/news/14385884/

相关文章:

  • 网站优化排名工具成都工装公司
  • 网站开发工具总结做网站编程用什么语言好
  • 网站移动端生成器苏州工业园区做政务网站的公司
  • wordpress网站不稳定阿里云服务器可以访问国外网站吗
  • 贵阳做网站的3免费做网站
  • 中国国家住房和城乡建设部网站首页网站架构设计招聘
  • 电商网站建设 数商云国际电商平台排行榜
  • 如何做网站内容管理网络规划设计师具体干什么
  • 如何做网站推广赚钱网站便宜建设
  • 导购网站模板免费下载网站建设需要几步
  • 关于设计图的网站淄博英文网站建设
  • 乡镇卫生院网站建设模板wordpress博客广告代码
  • 网站建设公司yu郑州网站建设哪家公司好
  • 网站免费的有没有影视传媒广告公司网站模板
  • 挂马网站现象网站架构价格
  • 网站建设常用软件jas2023网站seo
  • 儋州网站建设wordpress 4
  • 性做爰网站网页制作培训计划
  • 别人带做的网站关闭了权限咋办青岛网站建设哪家更好
  • 少儿英语做游戏网站推荐startup wordpress
  • 手机搭建网站企业机房建设公司
  • 福建南平网站建设杭州拱墅区网站建设
  • 有关于做茗茶的网站如何重视企业网站的建设
  • 国内优秀网站网页设计重庆承越网站建设公司
  • 酒店网站建设流程举报网站平台
  • 苏州外贸营销网站建设做的网站怎样更新
  • 如何建一个个人的网站企业融资顾问
  • 简述网站的制作步骤后台给网站做关键字
  • 牛天下网站建设免费网站重生九零做商女
  • 如何查询网站建设时间建网站需要注意什么