批单校验优化部分的改造基于可扩展,良好的可读性和可测试性的思路。基于这样的思路,我把校验分成了三部分。校验因子,校验规则,以及获取校验因子数据功能。校验因子以javabean的形式表述。校验规则根据校验因子做与或非的逻辑校验。数据获取功能通过对javabean做动态代理的方式插入。达到三个功能间的解耦!以期达到职责单一。从而得到一个可以对各个模块做单独测试的目的。
原始机制
原来的批单逻辑校验部分,各个页面通过调用统一的action url路径。在action层做所有的逻辑校验。校验逻辑混合在一个action方法中。校验逻辑之间没有明显划分。校验因子数据的获取与校验逻辑混合!这种方式在代码可读性和可扩展性都不强。
如果质押解质需求有所改变,需要根据另外一个校验因子做判断。那将会导致需要通读这全段代码,找到所有关于质押的校验,然后挨个条件。对于不懂质押需求的开发人员,做这件事相信风险是非常大的!同事,这些代码还被揉杂在其他诸如收付状态灯的校验当中。修改的复杂度在这种需求的不断变更中不断被拉高!
基于职责链于动态代理模式对校验逻辑的改造
优化设计如下:
1. 类设计
2. 类职责说明
a) Factor 做为一个因子接口的存在,里面只有对因子的get ,set方法
b) FactorBean 做为因子的具体实现。
c) validateHendler 作为一个校验的抽象类。是职责链模式的一部分
d) ValidateA实现了validateHendler ,同时它也继承了基类中的成员变量和该成员变量的设置值和获取值的方法!
e) InvocationHandler是jdk提供的一个接口,实现jdk动态代理必须实现的一个接口
f) FactorInvokerA 实现了invovationHandler接口,同时依赖了接口Factor,因此也就具有了对Factor设置值得能力。
3. 部分代码示例
a) 测试代码:
b) Factor接口代码
c) FactorBean代码
d) 校验抽象类代码
e) 打印校验类代码
f) 具体handler类代码
改造后获得的优势
外层调用不需要知道校验因子该如何设置,也不需要知道具体该如何校验,只用创建多个单一的校验类,以一个链的形式去做校验!彻底隔离了action于校验部分。
具体的校验类不需要知道因子应该如何获取,只需要调用代理就可以获得需要的因子,使得校验规则能够清晰展现。
获取因子的方法被封装到一个个的代理类中。方便扩展校验因子
由于各个类的职责单一,而且彻底脱离了action层,因此测试代码可以非常容易的编写。
当前改造方案的不足
设计一个Factor接口,主要是因为jdk提供的动态代理,只能对接口做代理。因为不想做过多的代码添加,另外考虑到往工程中添加额外的jra包,可能会导致jra版本不一致,以及jra之间的依赖风险。所以也没有采用spring的动态代理。
如果想要在保单验证或者其他验证部分服用该部分代码,只能通过在Factor中添加因子。将会导致Factor膨胀等问题。
- 大小: 13.8 KB
- 大小: 19.5 KB
- 大小: 7.6 KB
- 大小: 13.3 KB
- 大小: 6.7 KB
- 大小: 27.3 KB
- 大小: 22.9 KB
- 大小: 45.1 KB
分享到:
相关推荐
标题中的“机械毕业设计——车床-CA6140车床主传动系统的数控化改造设计”揭示了这个项目的核心内容,即对一种常见的机械加工设备——CA6140车床进行主传动系统的数字化升级。CA6140车床是一种广泛应用的卧式车床,...
##### 3.1 进给系统机械结构改造设计 - **结构优化**:针对现有车床的结构特点,进行必要的结构调整。 - **部件替换**:更换原有的传动部件,采用更高效的滚珠丝杠螺母副等新型元件。 ##### 3.2 进给伺服系统机械...
【既有建筑电气改造设计】是指对已经建成并投入使用的建筑进行电气系统的更新升级,以满足新的使用需求、提升能效和环保性能。改造设计不仅要考虑到建筑的功能变化,还要处理好新旧规范、产品兼容性、历史资料缺失等...
这一目标对建筑行业产生了深远影响,尤其是既有建筑的电气改造设计。既有建筑是指已经建成并投入使用的建筑,它们往往存在着电气系统陈旧、能效低等问题,需要进行改造以适应新的节能要求。 1. **既有建筑供电方案...
居民健康卡HIS系统改造方案是针对医疗机构信息系统(Hospital Information System,简称HIS)进行的一项重要改进工作,旨在提升医疗服务的质量和效率,实现居民健康数据的统一管理和便捷使用。此方案由河北省卫生和...
《经济型的数控改造》是一项针对机械设备进行数字化升级的毕业设计项目,主要涉及机械设计、汽车工程等相关领域。本文将详细解析这一主题,探讨在有限的资源下如何实现机械设备的经济型数控改造,并通过DWG图纸展示...
该CAD系统的开发基于Visual Basic 6.0软件平台,通过分析卧式车床进给机构经济型数控改造过程,利用数控改造的理论设计计算方法作为CAD数学模型。CAD系统的总体结构由设计计算模块、图形绘制模块、数据库及其管理...
内容概要:本文详细探讨了中型化工厂的供配电系统设计,涵盖负荷计算及无功补偿、变电所主变压器及接线方案选择、短路电流计算、一次设备选择及校验、防雷保护等方面。文章通过具体的计算方法和设计步骤,确保供电...
《电信设备-电网信息校验方法及系统、电网规划辅助系统》是一份深入探讨电力通信领域的重要资料,主要关注电网信息的准确性和规划辅助系统的应用。这篇文档详细阐述了如何通过先进的技术和方法来确保电网信息的正确...
其中,进给电机伺服系统的改造设计是核心内容之一。 3. **进给电机伺服系统的改造设计** - 该环节主要涉及步进电机或伺服电机的选择及其控制系统的搭建。选择合适的电机类型对于提高加工精度至关重要。 4. **...
电力系统规划设计对电力供应的可靠性和安全性非常重要。电力系统规划设计可以确保电力供应的稳定性和连续性,避免电力供应的中断和损失。 五、电力系统规划设计的应用 电力系统规划设计有广泛的应用前景,包括: ...
总的来说,分光光度计数据处理系统的改造和优化,旨在提高数据处理速度和稳定性,满足大数据时代下对智能数据分析的需求。通过改善硬件接口和优化软件设计,不仅提升了分光光度计的性能,也为科学研究和工业生产提供...
尽管我国电力系统正在大规模现代化改造中,但是传统的变电所依然存在,其自动化程度较低、设备老旧、结构布局不合理、投资大、损耗高、占地面积大、效率低等问题亟待解决。因此,主变压器和相关电力设备的选择及布局...
设计并实现了基于MD5技术的认证校验原型系统,该系统能够有效地解决开发技术多样性及复用困难等问题。通过大量的测试,验证了该解决方案的技术可行性和实用性。 #### 5. 结论 综上所述,基于MD5技术的认证校验应用...
X市地铁在建设过程中,为了满足日益严格的隧道施工信息管理需求,对原有的地铁盾构数据采集系统进行了技术改造。这项改造旨在提升系统的功能,确保盾构施工的安全和效率。文章主要介绍了改造的背景、存在的问题以及...
定期的系统校验和性能测试可以确保其始终处于良好的工作状态。此外,随着技术的发展,对SIS系统的更新和升级也是持续改进安全性能的关键。 综上所述,SIS安全仪表系统在乙烯装置改造中的应用不仅关乎装置的安全运行...
本文档的主要内容涉及对Z3050摇臂钻床的PLC控制系统改造,重点在于讨论PLC(可编程逻辑控制器)在机床控制系统中的应用,以及它相较传统继电器控制系统的优越性。文中详细介绍了PLC的特点及其在改造旧有设备时的技术...
【九华山排水改造工程施工设计方案】是一份详细阐述如何对九华山地区排水系统进行改造的施工方案。该方案基于设计意图、现场考察和类似工程经验编制,旨在解决东风湖片区(九华山地段)长期存在的积水问题,以改善...