【问题标题】:Implementing CQRS with OOP in Java在 Java 中使用 OOP 实现 CQRS
【发布时间】:2014-06-10 04:16:48
【问题描述】:

我有一个 API,其中查询和实体模型的表示由同一个类表示。简化版:

class Model {
  private Long id;
  private Double a;
  private Double b;
  ...
}

问题是这些属性一起作为查询对象毫无意义。它完全不需要id,并且ab 是独占的。如果没有适当的分离,代码很难理解。我的计划包括为每种类型的键创建单独的查询类:AB

但让我担心的是,为了避免使用instanceof(假设了解所有查询类型的任何代码),我需要在查询对象中实现所有横切关注点。例如,映射到 WHERE 子句作为实际 SQL 查询的一部分。

为了避免客户端隐式依赖于实现,我最初的计划是创建扩展每个 POJO AB 的服务器端类并在那里实现细节。这需要额外的映射层来从 A 映射到将实现 sqlQuery() 操作的其他类(简化问题)。

问题:既然这看起来很复杂,那么对于这类问题是否有一些标准的方法?欢迎参考、模式。

【问题讨论】:

  • 不太明白这个问题你能提供一个更具体的例子吗? a 和 b 在您的域中实际上是双倍的吗?

标签: java oop cqrs


【解决方案1】:

正如您所说,实现单独的查询类似乎是个好主意。 GOF 的策略模式可能是一个很好的起点,请参阅http://en.wikipedia.org/wiki/Strategy_pattern

【讨论】:

    猜你喜欢
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2020-09-20
    • 1970-01-01
    相关资源
    最近更新 更多