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

网站建设论文框架友情链接样式

网站建设论文框架,友情链接样式,浙江建设职业继续教育学院网站,嘉兴企业网站建设1.前言 最近接到要修改的业务功能,这个业务增删改查很多功能都需要校验时间,比如: 1.失效时间不能超过自己父表的失效时间, 2.失效时间不能是当前时间 3.失效时间不能早于生效时间 类似这样的不同的判断还有很多,…

1.前言

最近接到要修改的业务功能,这个业务增删改查很多功能都需要校验时间,比如:

1.失效时间不能超过自己父表的失效时间,

2.失效时间不能是当前时间

3.失效时间不能早于生效时间

类似这样的不同的判断还有很多,我就先举这三种例子,因为这是在一个管理功能,也许未来还有很多的这样的规则处理,所以需要好好的设计下。

2.设计实现

我想着对于这种校验是一种规则,而对于时间的校验就是时间校验规则,所以我们定义个接口,某某业务时间规则接口,并定义了两个方法,一个是对传过来的两个时间的校验范围,一个是对当前时间及另一个传输过来的时间校验范围,如下伪代码

public interface XxBussinessDateRule{/**传入两个时间进行校验*/boolean dateScopeValidate(String dateOne,String dateTwo,MathSymbolsEnum mathSymbols);/**传入时间与当前时间进行校验*/boolean dateScopeValidateByCurrent(String date,MathSymbolsEnum mathSymbols);
}

MathSymbolsEnum枚舉類是专门处理数学符号的,如大于(>),小于(<),小于等于(<=)等等等等,

传输这个值才能更灵活处理校验规则。

public enum MathSymbolsEnum{/**大于*/GREATER_THAN,/**小于*/LESS_THAN,/**小于等于*/EQUAL_OR_LESS_THAN,/**大于等于*/EQUAL_OR_GREATER_THAN,/**等于*/EQUAL,/**不等于*/NOT_EQUAL,
}

DefaultxxBussinessRule类:是xxBussinessRule的实现类,因为只有此一个实现类,所以名称里加一个Default,这个类主要是对时间的校验,需要根据枚举类的符号进行判断,如果大于就调用此类私有方法dateValidateGreaterThan,如果小于就找私有方法dateValidateLessThan,用于处理不同情况的校验。

在我原有的实现里,这里调用的是不同工具类的处理方法。伪代码呢就直接写死true,False返回,你可随意实现

@Component
public class DefaultxxBussinessDateRule implements XxBussinessDateRule {/*** 传入两个时间进行校验*/@Overridepublic boolean dateScopeValidate(String dateOne, String dateTwo, MathSymbolsEnum mathSymbols) {// 大于if (mathSymbols.name().equals("GREATER_THAN")) {return dateValidateGreaterThan(dateOne, dateTwo);}// 小于if (mathSymbols.name().equals("LESS_THAN")) {return dateValidateLessThan(dateOne, dateTwo);}return false;}/*** 传入时间与当前时间进行校验*/@Overridepublic boolean dateScopeValidateByCurrent(String date, MathSymbolsEnum mathSymbols) {// 小于等于if (mathSymbols.name().equals("EQUAL_OR_LESS_THAN")) {System.out.println("模拟校验:是否小于等于");return true;}return false;}private boolean dateValidateGreaterThan(String dateOne, String dateTwo) {// 模拟校验规则// 假如第一个时间大于第二个时间System.out.println("模拟校验:是否大于");return true;}private boolean dateValidateLessThan(String dateOne, String dateTwo) {// 模拟校验规则// 假如第一个时间小于第二个时间System.out.println("模拟校验:是否小于");return true;}}

正常到这里就结束了,但是又考虑了下,未来如果这个功能又要加其他规则呢,和本次时间规则毫无关系呢,那就又需要新建接口,定义新的方法,ok没有问题,问题是如果再继续新加接口、定义方法呢,有这么多类都是这个功能下的规则,入口却是多个,业务逻辑也许并不相通,怎么办?

所以,加个类,这个类用来封装统一调用不同的入口使用,这个想法思路也叫门面模式(外观模式)。

门面模式:不想让用户调用更繁杂的方法,也不用让用户了解内部具体的实现,只要简单一调用就可实现方法即可。

新建统一门面类:XxBussnissRule,继承了基础的校验规则类(下面有讲),依赖业务时间类,并定义实现两个方法,这两个方法调用到了时间校验类里的规则,这样所有的调用方都以这个为入口,都调用到这里

@Component
public class XxBussnissRule extends BaseValidateRule{@Resourcce private XxBussinessDateRule xxBussinessDateRule;public boolean dateScopeValidate(String dateOne,String dateTwo,MathSymbolsEnum mathSymbols){return xxBussinessDateRule.dateScopeValidate(dateOne,dateTwo,mathSymbols);}public boolean dateScopeValidateByCurrent(String date,MathSymbolsEnum mathSymbols){return xxBussinessDateRule.dateScopeValidateByCurrent(date,mathSymbols);}}

加了这个统一的入口,调用就很方便了,未来添加别的规则,只要在这个类里添加即可。

除了这一点以外,我们可能会有些通用规则,对于入参可能会有判空、校验入参字段长度啊等等一些基础规则,那么我们需要新建类:BaseValidateRule

这样,XxBussnissRule就可以继承BaseValidateRule类,用户调用XxBussnissRule就自然有了基础规则的功能。

public class BaseValidateRule{// 举例...public boolean isLength(){return true;}
}

3.测试准备

测试使用,单元测试调用业务规则校验时间伪代码,可以看到,我们使用统一的类调用即可,外部引用则可以直接引用这一个类,未来扩展其他规则,还可以依赖这个入口。

@SpringBootTest
public class TestApi {@Resourceprivate XxBussnissRule xxBussnissRule;@Testpublic void testFaced() {boolean dateValidate = xxBussnissRule.dateScopeValidate("2023-05-02", "20233-05-04", MathSymbolsEnum.GREATER_THAN);boolean dateValidateByCurrent = xxBussnissRule.dateScopeValidateByCurrent("2023-05-17", MathSymbolsEnum.LESS_THAN);System.out.println("两个日期校验比对模拟:"+dateValidate);System.out.println("与当前日期校验比对模拟:"+dateValidateByCurrent);}
}

执行结果,证明流程走下來了。 

http://www.hrbkazy.com/news/40379.html

相关文章:

  • 公司网站建设和推广电脑培训机构哪个好
  • 网站动态域名网站案例分析
  • 外国一些做环保袋的网站公司员工培训内容有哪些
  • 网站建设贰金手指下拉壹玖网络精准推广
  • 设计电子商务网站建设方案公众号seo排名优化
  • java可以做网站么站点搜索
  • 宁波网站设计推广服务公司广州谷歌seo公司
  • 用mediawiki做的网站搜外seo
  • 好网站建设可视化网页制作工具
  • 免费企业网站创建网站优化关键词公司
  • 网站建设qianhaiyou网站推广计划书范文
  • 网站开发的基本流程 岗位及职责南宁seo怎么做优化团队
  • 淮上网站建设百度快照网站
  • asp动态网站开发软件域名注册网站哪个好
  • 网站备案需要多久时间培训机构管理系统哪个好
  • 网店运营心得体会点石关键词排名优化软件
  • 做网站一般工资如何信息流推广渠道有哪些
  • 一级做爰片c视频网站免费seo软件
  • 用wordpress做网站教程域名whois查询
  • 武汉seo公司排名泉州seo网站排名
  • 北京网站建设及appseo快速排名多少钱
  • 赣州开发区网站建设seo外包优化服务商
  • 做卡盟网站教程seo排名赚官网
  • 电子商务网站开发费用网站流量统计查询
  • 网站开发项目总结报告品牌推广渠道
  • 做旅游网站的社会效益可行性杭州seo首页优化软件
  • 中堂镇做网站微商如何引流与推广
  • 网站建设业务培训有什么平台可以发布推广信息
  • 可以建立网站的平台环球网今日疫情消息
  • 网站建设的基本技术正在播网球比赛直播