上层建筑和下层建筑

 

现在的开发架构一般都是三层或四层架构,较下的层总是提供接口或方法给上层调用,这时就遇到一个问题了:调用下层接口或方法的时候,传入的参数需要怎样验证正确性呢?如果两个层次之间是属于同一个项目或是同一个公司的项目的话可能还可以查看一下源代码,看一下下层的实现方法是否有验证参数的正确性,但如果是使用其它的类库,我们无法看到源代码的时候咋办?甚至有时候在同一个公司,同一个项目中,下层接口方法的编写者也不知道该不该在每个方法里验证参数是否正确,是否不为null(这个最常见了)。

       这个时候,大家都应该遵守一种业务的约定,很多问题便能迎刃而解了。下面举两个小例子:

Action

Service

Page listData()

在上图中Action调用Service中的一个返回类型为PagelistData的方法然后再作小许的加工就可以将Page中的数据放到页面中显示了。在这种场景下,页面对Page中有没有数据其实是不关心的,Action并不会检验(也没有必要)Page里是否有数据,只要Page里的数据不为null就可以了(要清楚没有数据跟null的区别),因此,ServicelistData接口返回的Page一定不能为null

         如果上图中的listData方法改为返回类型为MapUsergetUser方法则又有另一种说法了。getUser方法的使用场景大部份是必须要查出真实数据的对象的,当Action传入的参数在Service里查不到数据的话,Service绝不能返回一个不带任何数据的MapUser对象,而是返回null就可以了,让Action自己作判断,然后做应该做的事。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值