单元是逻辑上的,单元这词还真不好拿一个比较准确的句子去概述,在实际的代码编写过程中,究竟怎么划分单元,是一个很有意思的问题,拿一个DAO的编写来探讨。
写一个DAO的时候,先写接口,再写实现类,程序员基本是这么干的,那么DAO中需要用到的SQL语句放在什么地方呢?不外乎这四种做法
- 在接口中定义静态公共变量,并初始化之
- 在实现类中定义静态公有(或私有)变量,并初始化之
- 在外部资源文件中定义SQL语句,在实现类中合适的时机读取该SQL语句
- 在实现类的方法中定义局部变量,并初始化之
代码编写的步骤是先写SQL,然后在函数中执行,并返回结果。在理想的情况下,SQL是正确的,在函数中执行也没有遇到问题,这个过程只需要一遍即可完成。但是这种情况极少能出现,一个函数编写完到调试完毕,输出正确的结果,怎么的说也要在检查SQL语句,调试函数内语句之间切换个好几次的,如果初次的SQL语句不正确,还要对其进行修改。
因此,前面所说到的单元问题在这个时候产生了效应,第一种方法需要修改接口中的静态公共变量,也就是要切换到另外一个类中,这个时候,类可以看着是一个单元。函数本身也是一个单元,在这种做法中,总共需要跨越两个单元。
第二种方法,修改SQL,需要跨越函数本身,跨越了一个单元。
第三种方法,如果需要修改SQL,需要到相关的资源文件中去修改,假如读取SQL文件的类也算一个单元,那么可能会有一些额外的成本去调试读取的SQL是否正确,对SQL语句进行资源统一编号。这样算下来,修改SQL最多需要跨越四个单元。
第四种方法,本地的局部变量,直接修改,对其他的模块无任何影响。前面三种做法中,假如SQL被多个模块所引用,修改SQL时,也修改了另外一个实现函数的逻辑。因此,耦合性很大。
但前三种方法在代码的设计过程中,经常被用到,不止如此,第四种做法还经常被嘲笑为低手的做法。但是仔细的分析后,第四种做法恰恰是在代码设计上一个好的做法,它遵循了修改其本身对其他单元不影响的原则,修改其本身时,也只要在其单元内部进行。这个原则我们称之为单元功能代码的就地原则。
<完>
分享到:
相关推荐
通常,二次回路编号采用数字和字母组合的方式,按照设备类型、功能和位置进行编码,确保每个元件都有唯一的识别代码。 总结来说,二次回路在电力系统中起着至关重要的作用,它协调控制、监测、保护和调节一次设备,...
派生类之间进行类型转换,并且它会按照尽量少进行隐式类型转换的原则经行匹配.在 一个函数调用中,如果函数是重载过的,并且重载函数的参数匹配分不出好坏的话 (都经行同样次数的隐式类型转换),那么将产生一个二义性...
Kotti 是一个基于 Pyramid 框架的 Python 内容管理系统(CMS),适合用来搭建中小型网站、文档库、企业展示平台、知识库等需要灵活内容结构和权限模型的项目。它本身更像一个可以二次开发的 CMS 框架,比 WordPress、Drupal 这类“一装就用”的系统更倾向于开发者定制和扩展。 这是支持pyramid2.x版本的kotti! tar -xzvf kotti1.0.tar.gz 解压缩 进入目录执行 pip install -e . 来安装, 然后执行pserve app.ini 启动。 用浏览器浏览127.0.0.1:5000 即可浏览。 用户名admin ,口令qwerty
cmd-bat-批处理-脚本-hello world.zip
知识付费系统自动采集V3.0 跳转不卡顿+搭建教程,不和外面的一样跳转卡顿,这个跳转不卡顿,支持三级分销。
在Matlab环境下,对图像进行特征提取时,主要涵盖形状、纹理以及颜色这三大关键特征。其中,对于纹理特征的提取,采用灰度梯度共生矩阵这一方法来实现。通过灰度梯度共生矩阵,可以有效地捕捉图像中像素灰度值之间在不同方向和距离上的相互关系,进而量化地反映出图像的纹理特性,为后续的图像分析、分类等任务提供重要的纹理信息依据。
该数据集为2010-2023年中国A股上市公司管理层情感语调的年度面板数据,覆盖45,320条样本,数据源自年报及半年报的"管理层讨论与分析"部分。通过构建中文金融情感词典(融合《知网情感分析用词典》与L&M金融词汇表),采用文本分析方法计算情感语调指标,包括:正面/负面词汇数量、文本相似度、情感语调1((积极词-消极词)/总词数)和情感语调2((积极词-消极词)/(积极词+消极词))。同时包含盈利预测偏差、审计意见类型等衍生指标,可用于研究信息披露质量、市场反应及代理问题。该数据复刻了《管理世界》《财经研究》等期刊的变量构建方法,被应用于分析语调操纵对债券市场的影响,学术常用度与稀缺度较高。
cmd-bat-批处理-脚本-FTIME.zip
1747829038637.png
2025年自动化X光检查机项目大数据研究报告.docx
在计算机组成原理课程设计中,我全程跟随老师的指导,独立完成了以下两项任务:一是利用Logisim软件进行原码一位乘法器的仿真设计,通过逐步搭建电路、配置逻辑单元,实现了原码乘法运算的完整流程,深入理解了原码乘法的原理和实现机制;二是完成了补码一位乘法器的Logisim仿真,同样按照老师讲解的步骤,精心设计电路,确保补码乘法运算的正确性,进一步掌握了补码乘法的运算规则和电路实现方法。通过这两个项目,我不仅巩固了理论知识,还提升了动手实践能力和逻辑思维能力。
cmd-bat-批处理-脚本-msvc2017.zip
cmd-bat-批处理-脚本-virtualcam-install.zip
二十四节气之立秋介绍.pptx
cmd-bat-批处理-脚本-shift.zip
二十四节气之小雪介绍.pptx
java、SpringBoot面试专题,6页面试题
cmd-bat-批处理-脚本-GenerateUnionWinMD.zip
二十四节气之大暑节气.pptx
python实现五子棋游戏源码