【发布时间】:2014-06-10 04:16:48
【问题描述】:
我有一个 API,其中查询和实体模型的表示由同一个类表示。简化版:
class Model {
private Long id;
private Double a;
private Double b;
...
}
问题是这些属性一起作为查询对象毫无意义。它完全不需要id,并且a、b 是独占的。如果没有适当的分离,代码很难理解。我的计划包括为每种类型的键创建单独的查询类:A 和 B。
但让我担心的是,为了避免使用instanceof(假设了解所有查询类型的任何代码),我需要在查询对象中实现所有横切关注点。例如,映射到 WHERE 子句作为实际 SQL 查询的一部分。
为了避免客户端隐式依赖于实现,我最初的计划是创建扩展每个 POJO A 和 B 的服务器端类并在那里实现细节。这需要额外的映射层来从 A 映射到将实现 sqlQuery() 操作的其他类(简化问题)。
问题:既然这看起来很复杂,那么对于这类问题是否有一些标准的方法?欢迎参考、模式。
【问题讨论】:
-
不太明白这个问题你能提供一个更具体的例子吗? a 和 b 在您的域中实际上是双倍的吗?