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

携程网站建设评价网站建设柒金手指花总14

携程网站建设评价,网站建设柒金手指花总14,专业网页制作服务商,wordpress code应用场景 实现规则匹配的逻辑 比如 ,同时支持 and or 多个条件组合 新增一个条件就增加一个实现类 说明 对于这种需要实现规则匹配的逻辑#xff0c;可以考虑使用策略模式。策略模式可以将不同的算法封装成不同的策略类#xff0c;让它们可以相互替换#xff0c;…应用场景 实现规则匹配的逻辑 比如 ,同时支持 and or 多个条件组合 新增一个条件就增加一个实现类 说明 对于这种需要实现规则匹配的逻辑可以考虑使用策略模式。策略模式可以将不同的算法封装成不同的策略类让它们可以相互替换从而实现不同的行为。在这个问题中可以将不同的匹配规则封装成不同的策略类让它们可以相互替换从而实现不同的匹配行为。 1、具体实现时可以定义一个接口例如 MatchStrategy其中包含一个 match 方法用于判断给定的值是否满足当前规则。然后针对不同的规则可以实现不同的策略类例如 GreaterThanStrategy、LessThanStrategy、EqualStrategy 等它们分别实现 MatchStrategy 接口并实现自己的 match 方法。 2、对于多个条件组合的情况可以使用组合模式来实现。例如可以定义一个 CompositeMatchStrategy 类它实现了 MatchStrategy 接口并包含一个 List 类型的成员变量用于存储多个子策略。然后可以定义一个 AndMatchStrategy 类和一个 OrMatchStrategy 类它们都是 CompositeMatchStrategy 的子类分别实现了 “and” 和 “or” 运算符的匹配逻辑。 这样当需要新增一个条件时只需要新增一个实现了 MatchStrategy 接口的策略类并将它加入到 CompositeMatchStrategy 中即可。整个匹配逻辑的实现就变得非常灵活和可扩展了。 实现 假设我们需要实现一个匹配规则的功能支持以下几种规则 大于等于某个值小于等于某个值等于某个值大于某个值小于某个值 同时还需要支持 “and” 和 “or” 运算符让用户可以将多个规则组合起来使用。 1、首先顶定义一个MatchStrategy 接口用于表示匹配规则 /*** author lsh* date 2023/6/9*/ public interface MatchStrategy {boolean match(String value); } 2、然后我们针对不同的规则实现不同的策略类。例如对于大于某个值的规则我们可以实现一个 MatchStrategyImpl1 类 /*** 匹配规则 大于0*/ public class MatchStrategyImpl1 implements MatchStrategy{Overridepublic boolean match(Integer value) {return value0;} } 类似地我们还可以实现其他的策略类这些类都实现了 MatchStrategy 接口并实现了自己的 match 方法。 3、接下来我们实现组合模式。我们定义一个 CompositeMatchStrategy 类用于表示多个匹配规则的组合 /*** 组合匹配规则*/ public abstract class CompositeMatchStrategy implements MatchStrategy {protected ListMatchStrategy strategies new ArrayList();public void addStrategy(MatchStrategy strategy) {strategies.add(strategy);}}这个类是一个抽象类包含一个 List 类型的成员变量 strategies用于存储多个子策略。它还包含一个 addStrategy 方法用于向 strategies 中添加子策略。 4、针对 “and” 和 “or” 运算符分别实现 AndMatchStrategy 和 OrMatchStrategy 类它们都是 CompositeMatchStrategy 的子类 /*** 或 组合规则*/ public class OrMatchStrategy extends CompositeMatchStrategy {Overridepublic boolean match(Integer value) {for (MatchStrategy strategy : strategies) {if (strategy.match(value)) {return true;}}return false;} }/*** 且 组合规则*/ public class AndMatchStrategy extends CompositeMatchStrategy {Overridepublic boolean match(Integer value) {for (MatchStrategy strategy : strategies) {if (!strategy.match(value)) {return false;}}return true;} } 5、测试 我们期望匹配大于零并且小于3 CompositeMatchStrategy strategy new AndMatchStrategy();strategy.addStrategy(new MatchStrategyImpl1());strategy.addStrategy(new MatchStrategyImpl2(3));if(strategy.match(1)){//匹配成功log.info(1--------------------------------匹配成功);}else{log.info(1--------------------------------匹配失败);}if(strategy.match(4)){//匹配成功log.info(4--------------------------------匹配成功);}else{log.info(4--------------------------------匹配失败);}这样我们就可以灵活地组合多个规则并实现复杂的匹配逻辑了。
http://www.dnsts.com.cn/news/193581.html

相关文章:

  • 网站套餐方案二级域名前缀大全
  • 长春市网站推广扬中网络公司
  • 网站的建设方式有哪些安阳建设局网站
  • 怎么创建网站平台赚钱网站管理助手 建设中
  • 建网站申请黑马程序员培训机构怎么样
  • 安徽省建设厅查询网站建筑公司的愿景怎么写
  • 网站建设有什么方法连接数据库网址缩短
  • 广西钦州有做网站的公司吗wordpress 分类排序
  • 个人主页网站制作教程app开发一般需要多少钱
  • 平台网站建设开票开什么内容做网站网上接单
  • 室内设计效果图平面图搜狗优化排名
  • 网站后台编程语言软文营销经典案例200字
  • 登陆建设银行官方网站企业文化理念口号
  • 不做网站只做推广可以么seo与网站优化
  • 网站设计网站建设休闲度假村网站建设方案
  • 做金融平台网站需要多少钱网站建设改版公司
  • 一个网站建设都需要什么做个微信小程序需要花多少钱
  • 网络营销推广的方式包括爱站seo排名可以做哪些网站
  • 旅游网站制作工程公司名字大全大气好听
  • 嘉兴制作企业网站聊城手机网站建设解决方案
  • 湖南省城乡与住房建设厅网站谁有企业邮箱
  • 如何申请域名创建一个网站校园网站建设毕业设计
  • 湖南星大建设集团有限公司网站开发一个安卓app多少钱
  • 青岛哪家公司做网站好仪征网站建设
  • 做网站王仁杰安徽省建设厅网站巅川建设有限公司
  • 卖货平台有哪些网站优化外包服务
  • 提高网站响应速度wordpress 咚门
  • 哈尔滨企业网站开发报价wordpress付费插件
  • 自己建网站做那个模块好做网站需完成的软件
  • 兰州网站建设价flask做网站