`
Mojarra
  • 浏览: 130842 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

单元功能代码的就地原则

阅读更多

单元是逻辑上的,单元这词还真不好拿一个比较准确的句子去概述,在实际的代码编写过程中,究竟怎么划分单元,是一个很有意思的问题,拿一个DAO的编写来探讨。

 

写一个DAO的时候,先写接口,再写实现类,程序员基本是这么干的,那么DAO中需要用到的SQL语句放在什么地方呢?不外乎这四种做法

  1. 在接口中定义静态公共变量,并初始化之
  2. 在实现类中定义静态公有(或私有)变量,并初始化之
  3. 在外部资源文件中定义SQL语句,在实现类中合适的时机读取该SQL语句
  4. 在实现类的方法中定义局部变量,并初始化之

代码编写的步骤是先写SQL,然后在函数中执行,并返回结果。在理想的情况下,SQL是正确的,在函数中执行也没有遇到问题,这个过程只需要一遍即可完成。但是这种情况极少能出现,一个函数编写完到调试完毕,输出正确的结果,怎么的说也要在检查SQL语句,调试函数内语句之间切换个好几次的,如果初次的SQL语句不正确,还要对其进行修改。

 

因此,前面所说到的单元问题在这个时候产生了效应,第一种方法需要修改接口中的静态公共变量,也就是要切换到另外一个类中,这个时候,类可以看着是一个单元。函数本身也是一个单元,在这种做法中,总共需要跨越两个单元。

 

第二种方法,修改SQL,需要跨越函数本身,跨越了一个单元。

 

第三种方法,如果需要修改SQL,需要到相关的资源文件中去修改,假如读取SQL文件的类也算一个单元,那么可能会有一些额外的成本去调试读取的SQL是否正确,对SQL语句进行资源统一编号。这样算下来,修改SQL最多需要跨越四个单元。

 

第四种方法,本地的局部变量,直接修改,对其他的模块无任何影响。前面三种做法中,假如SQL被多个模块所引用,修改SQL时,也修改了另外一个实现函数的逻辑。因此,耦合性很大。

 

但前三种方法在代码的设计过程中,经常被用到,不止如此,第四种做法还经常被嘲笑为低手的做法。但是仔细的分析后,第四种做法恰恰是在代码设计上一个好的做法,它遵循了修改其本身对其他单元不影响的原则,修改其本身时,也只要在其单元内部进行。这个原则我们称之为单元功能代码的就地原则。

 

<完>

 

 

分享到:
评论
1 楼 niva 2012-09-30  
不错 好文 
思想与grasp中的 信息专家模式不谋而合 你可以和大师媲美了

相关推荐

    就地型馈线自动化技术原则(试行).docx

    《就地型馈线自动化技术原则》探讨了在电力系统中如何有效管理和处理馈线故障,以确保供电的稳定性和可靠性。馈线自动化是电力系统自动化的重要组成部分,它利用先进的控制策略和技术,对配电网进行故障检测、定位、...

    变电站综合自动化系统测控单元就地运行.rar

    在变电站中,测控单元就地运行的意义在于,即使通信网络出现问题或者中央控制系统失效,变电站仍能保持基本的运行和保护功能,防止事故扩大,确保电力供应的连续性。 变电站综合自动化系统中,测控单元的就地运行...

    变电站综合自动化系统测控单元就地下放的运行情况分析.rar

    “就地下放”是指将测控单元的功能模块部署到距离被监控设备最近的位置,减少信号传输距离,降低信号损失和干扰,提升数据采集的准确性和实时性。这种方法有助于减少主站与子站之间的通信压力,优化网络资源分配。 ...

    顺序表就地逆置

    #### 八、示例代码 下面是基于上述思路实现的就地逆置函数: ```c Status ReverseList_Sq(SqList &L) { if (L.length ) return OK; // 空表或只有一个元素时无需逆置 int start = 0; int end = L.length - 1; ...

    远程 /就地切换控制

    远程/就地/停止切换装置,接受远程或就地信号控制,在执行器端或控制室都可操作

    单链表就地逆置的方法

    本文将详细介绍如何实现单链表的就地逆置方法,并通过代码示例加以解释。 #### 什么是单链表 单链表是一种线性表,其中每个元素都是一个单独的对象。每一个元素(即节点)包含两部分:存储元素值的数据字段和指向...

    变电站综合自动化系统测控单元就地下放的运行情况分析.pdf

    测控单元就地下放布置是一种新型的安装方式,其运行情况分析对于电力系统的稳定运行至关重要。 目前,变电站综合自动化系统主要存在三种结构:分布式系统结构、集中式系统结构和分层分布式系统结构。分布式系统结构...

    单链表的就地反转

    单链表的就地反转 单链表的就地反转是指在不使用额外的存储空间的情况下,反转单链表的节点顺序。该操作对链表的结构进行了重新组织,使得链表的节点顺序被反转。 在该实验报告中,我们将学习如何使用C语言来实现...

    锦绣就地控制方案

    锦绣就地控制面板具备多种功能。它可以监控四管制定风量空气处理机组的回风温湿度,控制风机启停,调节新风阀的开关,并监测过滤网压差状态。此外,还提供了两个辅助设备的开关控制点。控制面板能实时监测机组运行...

    javascript 就地编辑实现代码

    - 在理解了书中内容后,作者试图独立实现一个类似“就地编辑”功能的代码示例。 2. **就地编辑的概念与实现**: - 就地编辑是指在网页上直接对文本内容进行编辑,而无需跳转到新的页面或打开编辑窗口。 - 实现...

    jquery 就地编辑php版

    在Web开发中,jQuery库因其简洁的API和强大的功能,深受开发者喜爱。其中,"就地编辑"(In-Place Editing)是一种常见的交互设计模式,允许用户直接在网页上修改数据显示的内容,而无需跳转到新的页面或表单。当这种...

    数据结构实现就地逆置

    数据结构在计算机科学中扮演着至关重要的角色,它关乎如何高效地存储和处理信息。而“就地逆置”是一种特殊的数据操作,尤其在链表处理中常见,它...理解和熟练掌握这一技术对于提升编程技能和优化代码性能至关重要。

    数据结构(Java语言描述) 案例01 顺序表的就地逆置.docx

    《数据结构(Java 描述)》课程中的案例01探讨了如何就地逆置一个顺序表,即在不额外消耗显著空间的情况下,反转一个存储整数的数组。在这个案例中,我们关注的重点是算法的设计、分析和实现。 1. 算法设计 顺序表...

    变电站综合自动化系统测控单元就地运行.pdf

    分层分布式系统结构按照变电站的元件、断路器间隔进行设计,将变电站一个断路器间隔所需要的全部数据采集、保护和控制等功能集中由一个或几个智能化的测控单元完成。这种结构具有可靠性高、扩展性和开放性较高、站内...

    V20变频器手自动切换(就地远程切换)的具体方法示例.docx

    V20变频器的手自动切换,也称为就地远程切换,是指在不同的操作模式下,变频器根据用户需求接受不同的控制信号。在就地模式下,操作人员可以直接通过变频器面板进行启停控制和频率设定,适用于现场调试和简单操作。...

    变电站继电保护就地化整体解决方案研究

    回顾了近十年来我国智能变电站继电保护技术发展的概况,介绍了继电保护就地化的整体配置方案,包括线路保护、母线保护、主变保护、站域保护及间隔层其他设备就地化的实现技术。介绍了继电保护就地化的气候环境适应性...

    10KV配电网馈线自动化就地重合闸

    "10KV配电网馈线自动化就地重合闸" 本文主要介绍了10KV配电网馈线自动化技术的概念、原理、组成部分和保护配置方案等内容。下面是对该技术的详细分析和总结。 一、馈线自动化技术的概念和原理 馈线自动化技术是10...

    单链表 创建 头插法 尾插法 就地逆置

    在上面的代码中,就地逆置的实现函数是`nizhi(Link &l)`和`nizhi2(LinkList &L)`,它们都是将单链表的节点顺序逆置的函数。 单链表的输出 单链表的输出是指将单链表中的数据输出到控制台的方法。其基本思想是遍历...

    线性表的就地逆置

    线性表的就地逆置 线性表是数据结构中最基本的结构之一,线性表的就地逆置是指在不使用额外空间的情况下,将线性表中的元素逆置。这种操作在实际应用中非常有用,例如在字符串处理、链表操作等方面。 线性表 ...

    就地逆序算法

    通过上述分析和代码实现,我们成功地展示了如何使用C语言实现循环单链表的就地逆序。该方法不仅高效,而且节省空间,非常适合处理大规模数据的情况。希望本文能够帮助读者更好地理解和掌握这一重要的数据结构操作。

Global site tag (gtag.js) - Google Analytics