愚者只看星不看答案 2019年05月07日
======== 关于字段映射 类调用 数据读取逻辑============
假设当前有一个用户表有以下字段
ID
UserName
Email
ZipCode
Address
PhoneNumber

有一个用户实体类,和上面的表字段完全对应。

现在让你开发一个类库,其中包含以下方法

一个用于读取用户表中的所有用户集合的方法 GetAllUsers,返回 用户实体类 的集合
一个读取指定用户的 GetUserById 方法,返回一个 用户实体类

现在有以下不同的若干页面
A页面,仅仅显示 ID UserName
B页面,仅仅显示 ID UserName Email
C页面,仅仅显示 ID UserName PhoneNumber

因为你在开发类库让别人调用,所以你无法知道别人会不会使用 PhoneNumber 这个字段,所以你在类中的每个方法中都查询出了 PhoneNumber 这个字段,但是如果从业务需求的层面来看,A,B页面并没有使用到 PhoneNumber, 返回这个字段对于 A,B页面并没有意义,尤其是在表数据量大的情况下,浪费带宽及其它资源 。
这个问题,你们是怎么处理的?

如果为了避免这种浪费,你创建了以下方法
GetAllUsers_For_PageA ,返回 用户实体类 的集合,除 ID UserName 以外,其实属性值都为null

GetAllUsers_For_PageB,,返回 用户实体类 的集合,除 ID UserName Email 以外,其实属性值都为null

GetAllUsers_For_PageC,,返回 用户实体类 的集合,除 ID UserName Email PhoneNumber以外,其实属性值都为null

这样最大程度上节省了资源,但是返回的是相同的 用户实体类,在
GetAllUsers_For_PageA 的情况下 Email 为 null 值

GetAllUsers_For_PageB的情况下 Email 不为null值

在这种情况下,你又如何在文档中解释 用户实体类 的 Email 属性在什么情况下是 null ,什么情况下是非 null ,这个同样很奇怪..

请问大家,你们平时怎么处理此类情况?多谢

一直很困惑这样的问题,请大家耐心指教。。
...全文
20 点赞 收藏 3
写回复
3 条回复

还没有回复,快来抢沙发~

发动态
发帖子
Java SE
创建于2007-09-28

3.4w+

社区成员

30.7w+

社区内容

Java 2 Standard Edition
社区公告
暂无公告