`
miracle9i
  • 浏览: 34609 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

查询方法接口设计的几种方式

阅读更多

1. 每个条件项对应一个入参

List find(String hql,Date startTime,int personId);

 优点:方法签名可读性强;

 扩展:要么改接口签名,要么增加参数构造重载方法,扩展性差;

 基本背离了面向接口编程的初衷,除非你很确定参数不被改变,否则少用为佳。

 

2.使用数组传递条件项参数

List find(String hql, Object[] params);

 优点:能保持接口稳定性

 缺点:方法可读性不强,JavaDoc要写清楚啊。

 用的最多的方法签名方式,Spring的HibernateTemplate就提供这样的方法。

 

3.使用不定参数

List find(String hql,Object ...params);

 用起来和2没区别。

 

4.将查询条件封装成对象

List find(String hql , QueryParamObjec param);

 没事干还要去维护这么一个DTO,而且变更时还是要去维护那个DTO的,除非追求类数目,否则不要这么...

 

5.使用Map传递条件参数

List find(String hql , Map params);

 优点:参数变化时保持签名的稳定;

 缺点:方法可读性不强,依旧要写好注释;

 这个签名在条件查询时用得很多,直接request.getParameterMap()得到Map,然后往下层丢就好了。

 

感觉2和5用的很广泛,看来面向接口的原则很重要滴呀。

 

分享到:
评论
4 楼 tonyyl 2008-09-18  
public List findByParamAndPage(HashMap params,Class c,String order,boolean asc,int first,int max);

俺的dao通用接口
3 楼 hyhongyong 2008-09-18  
<div class='quote_title'>miracle9i 写道</div>
<div class='quote_div'>
<p>1. 每个条件项对应一个入参</p>
<pre name='code' class='java'>List find(String hql,Date startTime,int personId);</pre>
<p> 优点:方法签名可读性强;</p>
<p> 扩展:要么改接口签名,要么增加参数构造重载方法,扩展性差;</p>
<p> <span style='color: #ff0000;'>基本背离了面向接口编程的初衷,除非你很确定参数不被改变,否则少用为佳。 </span></p>
</div>
<p><br/>的确要衡量此接口的改变频度,不过当接口需要发生变化的时候,你能确定接口的意义不会发生变化吗?</p>
<p>如果接口的意义都变化了,仍然保留原来的接口会有很多隐患吧。</p>
<p>这种方式的优点,除了可读性强外,还有编译检查。</p>
<p> </p>
<p>如果是对外部团队的接口,尽量还是不要变吧。如果是对团队内部的,接口发生变化的时候,能快速定位到需要变化的地方并更正,有时比不变接口而只改变接口的意义更好吧。</p>
2 楼 miracle9i 2008-09-18  
呵呵,我觉得保证接口的稳定性在接口设计时是很重要的,这也算面向接口的一方面吧
1 楼 spiritfrog 2008-09-18  
2和5固然会用的最多,因为具有普遍性,但看不出跟面向接口编程有什么关系啊。
另外,
List find(String hql,Object ...params) 跟 List find(String hql, Object[] params); 
还是有点区别, 如果只有一个参数, 前者不需要用数组,因此我觉得还方便点,但需要jd5才能支持。

相关推荐

    LCD控制及触摸屏接口设计

    给出了W 77E58、T32QM6450 及ADS7843之间的接口设计方法, 研究了实现字符、汉字、画面显示及屏幕滚动的编程方法, 并给出了实现部分功能的通用子程序。

    几种典型LVDS接口电路设计分析

    低电压差分信号(LVDS)在对信号完整性、低抖动及共模特性要求较高的系统中得到了广泛的应用。本文针对LVDS与其他几种接口标准之间的连接,对几种典型的LVDS接口电路进行了讨论。

    几种DSP与外接存储器的连接方法

    存储器接口分为ROM接口和RAM接口两种。ROM包括EPROM和FLASH,而RAM主要是指SRAM。TMS320C5409具有32K字的片内RAM和...因此设计一个TMS320C5409硬件系统一般应该包括其与EPROM/FLASH和SRAM的接口设计,以存放程序和数据

    基于VC的USB接口通信程序设计

    设计 中利用接口简单、灵活、有较高的传输速率和即插即用特性的USB2. 0芯片作为数据采集系统的数据 通信硬件平台。应用程序部分利用VC++的MFC框架的兼容性、稳定性和LabWindows/CV I(虚拟仪 器)具有灵活的交互式编程...

    常见的几种设计模式

    常见的几种设计模式: 单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则 说明:资料都是网上看的,只是稍微整理下成文档加代码方便理解 原文出处:...

    一种基于PWM的CMOS数据接口电路设计

     随着电路系统需求的扩展,集成电路设计与制造技术的进步,现代数字系统多工作在几百Mbps的速率上,这些高速系统常包含多个电路模块。系统中不同模块间的接口十分重要,它一般采用总线结构。为了获得更高的数据传输...

    基于TCP_IP的嵌入式web传感器网络接口设计_季雨辰1

    摘要:本文介绍了嵌入式web传感器的结构及其网络化接口的几种实现方式,重点论述了基于TCP/IP协议栈的嵌入式web传感器网络接口以及web服务器功能的实现。关

    配置CANoe自动化测试的五种实现方式Demo工程(CANoe 15)

    然后又回顾了一下以前用过的其他几种方式,利用周末时间总结分享出来,希望对相关领域的网友有所帮助。本Demo工程是参考项目中一项典型的测试来做了一个例程,主要展示了这几种实现方式的详细代码,实测全部可以正常...

    接口设计1

    数据访问或通知接口规范根据访问数据的数据量、访问频次可采用以下几种数据访问或通知接口:实时数据通知对于实时过车数据可采用消息中间件(kafka等)或socket

    C语言接口与实现

    本书介绍用一种基于接口的设计方法创建可重用的API,这一方法将接口与实现分离开来,且与语言无关。书中详细描述了24个接口及其实现,便于读者深入了解此方法。这些接口涉及很多计算机领域的知识,包括数据结构、...

    实现电平转换的6种方法,你会几种?

     实现电平转换的6种方法,你会几种?  一、电平转换方法  5种电平转换方法分别是,下午我们会从速率、驱动能力、漏电流、成本、通道数五个维度评价。:  1) 晶体管电平转换方法;  2) 专用电平转换芯片; ...

    新编MCS-51单片机应用设计(清晰最新版)

    8.1.3 I/O数据的几种传送方式 8.1.4 常用的I/O接口电路芯片 8.2 MCS—51扩展可编程并行I/O芯片8255A 8.2.1 8255A芯片介绍 8.3 MCS—51与可编程RAM/IO芯片8155H的接口 8.3.1 8155H芯片介绍 8.3.2 MCS—51与8155H...

    提高RS-485总线可靠性的几种方法及常见故障处理

    在MCU之间中长距离通信的诸多方案中,RS-485因硬件设计简单、控制方便、成本低廉等优点广泛应用于工厂自动化、工业控制、小区监控、水利自动报测等领域。但RS-485总线在抗干扰、...总线匹配有两种方法,。。。。。

    智能仪表的CAN接口设计

    摘要:目前现场总线有以下十几种,各总线之间规范不一样,都有自己的适用范围,其中CAN (Controller Area Network)总线以其高性能、高可靠性及更独特的设计越来越受到人们的重视,并已被公认为几种最有前途的现场...

    linux下几种最常用的IPC接口,这样一来,统一了接口,提高代码重用性.rar

    linux除了支持Unix早期信号语义函数signal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);...

    常用键盘接口

     独立式按键接口设计优点是电路配置灵活,软件实现简单。但缺点也很明显,每个按键需要占用一根口线,若按键数量较多,资源浪费将比较严重,电路结构也变得复杂。因此本方法主要用于按键较少或对操作速度要求较高的...

    单片机之间的通信方式

    本文将分析比较几种单片机之间的方式、难点,并提出一种解决方案。1、几种常用单片机之间的通信方式①采用硬件UART进行异步串行通信。这是一种占用口线少,有效、可靠的通信方式;但遗憾的是许多小型单片机没有硬件 ...

    利用USB/UART桥接芯片进行USB 接口的设计

    近几年来,USB 接口得到了日益...利用USB/UART桥接芯片开发USB 接口是一种较为简便易行的设计方法,这种方法可以适合大多数的USB 小型系统的应用。本文以TTDI公司的FT8U232M为例,对这种USB 接口的设计方法进行了阐述。

    8253的各种工作方式测试实验

    编写程序分别显示0,2,3几种工作方式下的波形 本实验使用8253A的定时/计数器2,GATE2接高电平,CLK2接1MHZ的时钟脉冲,OUT2接示波器观测输出波形。 实验中,要求记录定时器的时间常数,测试方式2和方式3下的输出...

    论文研究-一种基于偶数格的格型矢量量化方法.pdf

    通过分析和比较数据交换平台的几种常用数据交换模式,对交换平台的系统架构、技术实现模式,设计理念和策略进行探讨分析,提出了一种基于XML的数据交换模式,阐述了XML在平台数据交换的数据表示、数据格式转换、数据...

Global site tag (gtag.js) - Google Analytics