机房收费系统完美设计——参数传递+组合查询

         参数传递,是对方法而言的。在简单的程序设计中。公用的方法是定义在模块中的。其他的类调用模块中的方法时需要向方法传递函数。私有方法是定义在各自的类中的。调用的时候也需要向函数中传递参数。但是今天我想说的是在三层架构中参数的传递情况。这时候对于参数的传递更是常见的。上一层和下一层的联系都是需要调用下一层的方法的。


 

       参数传递一般包括这几种形式:1.传递值。2.传递实体。3传递数组,集合。


 

1.传递值。


       这是最简单,最常见的传参方式。你需要什么就传递什么。不如你需要查询卡号是否存在。就把卡号单独最为参数向下传递。返回结果也只需要有一个Boolean值作为参照,或者是一个具体的查询结果(比如带聚合函数的查询的返回结果)。

 

 

2.传递实体:

       这是三层中最典型的处理方式。因为每一层都要添加对实体层的引用。这样每一层也就都“认识”了实体,可以在U层对所要传递的实体实例化和赋值,然后作为参数向下传递。对于传回的参数有两种处理方法,一是出传回包含查询内容的数据集Dataset或是Datatable,还有一种就是传回实体。但是对于数据库操作层(D层)来说,所有的处理操作都是封装在Sqlhelper里的。sqlhelper不可能把要传回的实体赋值好。这些操作只能在D层操作。

对这两种传回的参数作一个比较:


    1.对于传回datasetdatatable你在需要取出里面的数据时不免会比较的麻烦。而且可能出现买一层都有可能执行读其中数据的操作,这样就看上去会比较的乱。


    2.对于传回实体的方法:

你需要把实体的所有字段查得的值都赋值好。然后再向下传递。这样每一层需要读取查得的数据只需要点出实体的属性就可以了。而且这样的是更好的封装,对于不同的数据需要。如果操作的是同一张表,就可以通过D层的一个函数进行处理。


比如有的要查询学生姓名,有的要查询学生年级。D层的一个根据学号的查询就可以完成了。

 



3.传递数组,集合


       传递集合对于传递数组来说应用的范围要广很多。集合的作用就是可以存放不同类型的数据。当然如果作为传入参数只有两个不同类型的数据,我们完全可以让一个函数包含两个参数。但对于传入参数很多,和返回值来说。集合是个不错的选择。对于三层架构加外观模式来说。外观往往承担了所有的逻辑操作。而且所有的逻辑操作的返回值要在U层有所体现。这样以集合作为返回参数,U曾需要什么类型的查询结果就可以直接读取集合的内容。


       这一点应用在组合查询也是非常行之有效的。可以把所有的U层收集到的查询条件作为字符串的形式保存在集合作为参数传递。当然这里为了提高效率泛型也是很好的选择,因为都是字符串。

 

       对于参数形式的选择当然是多种多样的。只用在合适的地方选择合适的参数才是最聪明的选择

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值