单元是逻辑上的,单元这词还真不好拿一个比较准确的句子去概述,在实际的代码编写过程中,究竟怎么划分单元,是一个很有意思的问题,拿一个DAO的编写来探讨。
写一个DAO的时候,先写接口,再写实现类,程序员基本是这么干的,那么DAO中需要用到的SQL语句放在什么地方呢?不外乎这四种做法
- 在接口中定义静态公共变量,并初始化之
- 在实现类中定义静态公有(或私有)变量,并初始化之
- 在外部资源文件中定义SQL语句,在实现类中合适的时机读取该SQL语句
- 在实现类的方法中定义局部变量,并初始化之
代码编写的步骤是先写SQL,然后在函数中执行,并返回结果。在理想的情况下,SQL是正确的,在函数中执行也没有遇到问题,这个过程只需要一遍即可完成。但是这种情况极少能出现,一个函数编写完到调试完毕,输出正确的结果,怎么的说也要在检查SQL语句,调试函数内语句之间切换个好几次的,如果初次的SQL语句不正确,还要对其进行修改。
因此,前面所说到的单元问题在这个时候产生了效应,第一种方法需要修改接口中的静态公共变量,也就是要切换到另外一个类中,这个时候,类可以看着是一个单元。函数本身也是一个单元,在这种做法中,总共需要跨越两个单元。
第二种方法,修改SQL,需要跨越函数本身,跨越了一个单元。
第三种方法,如果需要修改SQL,需要到相关的资源文件中去修改,假如读取SQL文件的类也算一个单元,那么可能会有一些额外的成本去调试读取的SQL是否正确,对SQL语句进行资源统一编号。这样算下来,修改SQL最多需要跨越四个单元。
第四种方法,本地的局部变量,直接修改,对其他的模块无任何影响。前面三种做法中,假如SQL被多个模块所引用,修改SQL时,也修改了另外一个实现函数的逻辑。因此,耦合性很大。
但前三种方法在代码的设计过程中,经常被用到,不止如此,第四种做法还经常被嘲笑为低手的做法。但是仔细的分析后,第四种做法恰恰是在代码设计上一个好的做法,它遵循了修改其本身对其他单元不影响的原则,修改其本身时,也只要在其单元内部进行。这个原则我们称之为单元功能代码的就地原则。
<完>
分享到:
相关推荐
通常,二次回路编号采用数字和字母组合的方式,按照设备类型、功能和位置进行编码,确保每个元件都有唯一的识别代码。 总结来说,二次回路在电力系统中起着至关重要的作用,它协调控制、监测、保护和调节一次设备,...
派生类之间进行类型转换,并且它会按照尽量少进行隐式类型转换的原则经行匹配.在 一个函数调用中,如果函数是重载过的,并且重载函数的参数匹配分不出好坏的话 (都经行同样次数的隐式类型转换),那么将产生一个二义性...
数据库实验认识数据库管理系统.doc
内容概要:本文介绍了一款用于生成ASAP2 1.6标准A2L文件的工具,旨在解决车载ECU标定过程中手动维护A2L文件的问题。该工具能够解析来自不同IDE(如IAR、GCC)的MAP文件,并将其转换为符合标准的A2L文件格式。它还特别针对CANape和INCA这两种常用设备进行了优化,确保生成的A2L文件能正确适配这两类设备的不同特性。此外,文中展示了部分关键代码片段,包括MAP文件解析、A2L模板生成以及设备特定的地址计算方法。 适合人群:从事汽车电子控制系统开发的技术人员,尤其是需要进行ECU标定工作的工程师。 使用场景及目标:①快速生成适用于多种IDE环境的标准A2L文件;②提高车载ECU标定效率,减少因手动编辑A2L文件带来的错误风险;③确保生成的A2L文件能够在CANape和INCA设备上正常工作。 其他说明:作者提到未来计划增加对ELF文件的支持,并考虑升级到ASAP2 2.0版本。当前版本已经可以高效处理大量变量,在实际应用中有很好的表现。
新产品研发作业流程优化与研发综合项目管理培训.doc
数控车床编程基本学习.pptx
数控编程基础.pptx
内容概要:本文详细介绍了模型预测控制(MPC)在动力学仿真尤其是双移线仿真中的应用。首先解释了MPC的基本概念及其优势,即通过建立数学模型预测系统行为并确定最优控制策略的能力。接着阐述了动力学仿真的重要性和具体应用场景,特别是对于汽车工业而言,双移线仿真是评估车辆性能的关键手段之一。文中还展示了如何用Python实现MPC控制器以及车辆动力学模型的具体步骤,强调了在实际操作中需要考虑的因素和技术细节。最后讨论了MPC在未来的发展潜力,尤其是在结合AI和ML后的前景。 适合人群:对自动化控制理论感兴趣的研究人员、工程师以及希望深入了解MPC技术的学生。 使用场景及目标:适用于从事汽车工程、机器人技术和自动化控制系统设计的专业人士,旨在提高他们对MPC的理解和应用能力,从而改善相关产品的性能。 其他说明:文章不仅提供理论知识,还包括了实际编码示例,有助于读者更好地掌握MPC的实际应用方法。同时提到了一些常用的仿真工具,如MATLAB/Simulink,可以帮助读者更快地上手实践。
内容概要:本文详细介绍了单目车辆测距系统的实现方法,涵盖了从环境配置到具体代码实现的全过程。首先,文中列出了GPU和CPU两种不同硬件条件下的软件环境配置,确保开发者可以根据自己的设备选择合适的开发环境。接着,重点讲解了利用YOLOv3进行车辆检测的具体步骤,包括模型加载、图像预处理以及输出层的选择。然后,深入探讨了距离估算的方法,特别是通过像素宽度反推真实距离的技术,并提供了具体的计算公式。此外,还特别提到了将Python代码转换为C++代码时需要注意的问题,如内存管理和性能优化。最后,强调了摄像头安装位置对测量精度的影响,并给出了参数校准的实际操作方法。 适合人群:从事自动驾驶研究或开发的工程师和技术爱好者,尤其是那些希望深入了解单目视觉测距原理并尝试将其应用于实际项目的人群。 使用场景及目标:适用于需要快速搭建单目车辆测距原型的研究和开发工作,旨在帮助用户掌握单目视觉测距的基本原理和技术要点,同时提供实用的操作指南和注意事项。 其他说明:虽然单目测距存在一定的局限性和误差,但在特定条件下仍能发挥重要作用。对于追求更高精度的应用场景,建议考虑采用双目相机或其他传感器组合。
数控车床编程.pptx
内容概要:本文介绍了欧姆龙CP1H+CIF11与欧姆龙E5CC温控器之间的通讯程序及其应用。通过昆仑通态触摸屏和串口网关模式,实现了对温控器的设定温度、读取实际温度、设定探头类型、设定报警值等多项功能。该程序具有通讯稳定可靠、反应灵敏等特点,适用于各种工业自动化场景。文中还提供了详细的器件说明、接线参考和参数设置指导,确保系统稳定运行并支持功能扩展。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要实现温控器通讯和控制的人群。 使用场景及目标:① 实现对温控器的高效精准控制;② 提供稳定的通讯解决方案;③ 支持灵活的功能扩展,以适应不同应用场景的需求。 其他说明:附赠威纶通触摸屏程序,帮助用户更好地理解和应用该通讯程序。
基于双重注意力特征增强网络的语义分割方法.zip
方便买网站项目策划书样本.doc
内容概要:本文详细介绍了基于C#开发的台达SCARA机器人的运动控制卡(台达PCI-DMC)上位机测试机设备程序。文中涵盖了硬件选型、软件架构设计、关键代码片段以及调试过程中遇到的问题及其解决方案。具体来说,硬件方面选择了台达PCI-DMC控制卡和ASDA-SCARA机器人作为主要组件,并配有带光耦隔离的IO扩展模块以减少干扰。软件层面采用三层状态机嵌套的方式进行多轴同步控制,解决了如坐标系转换、运动流畅性和IO管理等问题。此外,还分享了一些实用的经验技巧,例如加速度参数调整、适当的等待周期选择等。 适合人群:对工业自动化领域有一定了解并希望深入研究运动控制系统开发的技术人员,尤其是熟悉C#编程语言的开发者。 使用场景及目标:适用于需要开发类似运动控制系统的工程师们,在构建自己的系统时可以借鉴这里的硬件选型思路、软件架构设计方法以及具体的编码实践。 其他说明:作者提供了完整的源代码和相关资料,包括设备采购清单及IO表,有助于快速理解和复现整个项目。
数据库管理系统教程数据库理论基础知识.pptx
数据库实验报告.doc
图片识别程序所需数据集
内容概要:本文介绍了三菱FX-5U PLC在自动化生产线中的轴定位控制及其与测微计通过Modbus RTU RS-485通信的具体实现方法。文中详细描述了编程软件、PLC与触摸屏程序、地址规划表以及相关手册和视频教程的应用。通过实例展示了如何解决编程实践中遇到的各种挑战,如硬件接线和软件逻辑错误等问题。最终,成功实现了高精度的轴定位和稳定的数据通信。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对三菱FX系列PLC和Modbus RTU通信感兴趣的读者。 使用场景及目标:适用于希望深入了解三菱FX-5U PLC轴定位技术和Modbus RTU RS-485通信机制的专业人士。目标是掌握这两种关键技术的实际应用技巧,提高自动化系统的性能和可靠性。 其他说明:附带的编程示例有助于读者理解和实践文中提到的技术细节。同时提供的视频教程可以作为辅助学习材料,帮助初学者更快上手。
内容概要:本文深入探讨了三菱FX5U定位模块及其伺服系统在包装机中的应用。首先介绍了三菱FX5U系列定位模块的特点,如5轴控制能力和2轴插补功能,强调其在多轴联动和高精度运动控制方面的优势。接着阐述了昆仑通态触摸屏程序的作用,提供了直观的操作界面,便于监控和控制设备运行。随后详细描述了包装机程序的配置与功能分配,包括电机类型、驱动器型号、传感器类型等关键信息,确保系统稳定可靠。此外,还讨论了FX5-16ET-ES-H定位模块的扩展应用,并提供了定位设置说明。最后,附赠了大量相关资源和技术支持,如三菱PLC、伺服系统资料及软件工具,帮助用户更好地进行系统开发和维护。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要深入了解三菱FX5U定位模块及伺服系统的人群。 使用场景及目标:适用于需要高精度运动控制的机械设备,特别是包装机的设计、开发和维护。目标是提升设备的生产效率和操作体验,确保系统的稳定性和可靠性。 阅读建议:读者可以通过本文详细了解三菱FX5U定位模块的功能特点、配置方法及实际应用案例,结合提供的示例代码进行实践,进一步掌握相关技术。
NIFTY 50 数据集是一个与印度股市相关的数据集,它记录了 NIFTY 50 指数及其成分股的相关信息。NIFTY 50 是印度国家证券交易所(NSE)的一个重要指数,由 50 家在印度经济中具有代表性和流动性的大型公司组成,涵盖了多个行业,如金融、科技、能源等。这个数据集通常包含以下内容:时间序列数据:数据集可能包含 NIFTY 50 指数在不同时间点的收盘价、开盘价、最高价、最低价以及交易量等信息。这些数据可以帮助分析指数的走势和市场动态。 成分股信息:数据集中可能包含 NIFTY 50 指数成分股的详细信息,如公司名称、行业分类、股票代码等。这些信息对于了解指数的构成和分析特定公司对指数的影响非常有用。 财务数据:部分数据集可能还提供成分股的财务数据,如每股收益(EPS)、市盈率(PE)、股息率等,这些数据有助于投资者进行基本面分析。 宏观经济数据:一些数据集可能还会包含与印度经济相关的宏观经济数据,如利率、通货膨胀率等,这些数据可以用于分析宏观经济环境对股市的影响。投资分析:投资者可以利用这些数据来研究 NIFTY 50 指数的历史表现,分析成分股的走势,从而制定投资策略。 学术研究:研究人员可以使用这些数据来研究印度股市的动态特性、市场效率、行业表现等,为金融理论和实证研究提供数据支持。 市场预测:通过分析历史数据,结合机器学习或统计模型,可以尝试预测 NIFTY 50 指数的未来走势,为投资决策提供参考。 风险管理:金融机构可以利用这些数据来评估投资组合的风险,通过分析成分股的波动性和相关性,优化投资组合的配置。 高流动性:NIFTY 50 指数的成分股通常是市场上交易最活跃的股票,因此数据集中的交易数据具有较高的流动性和可靠性。 代表性强:这些成分股涵盖了印度经济的主要行业,能够较好地反映印度股市的整体表现。