【问题标题】:What is the definition of the object generated by jsonschema2pojo?jsonschema2pojo生成的对象的定义是什么?
【发布时间】:2018-09-18 22:03:15
【问题描述】:

有时我使用jsonschema2pojo 将一些json 转换为java 对象,但根据这些definitions,我总是会混淆它是VO 还是DTO。我确定这不是实体,但我不知道如何正确分类。

使用的目的,只是为了获取一个对象中的json。之后,我通过应用程序操作这些数据。

【问题讨论】:

  • 这取决于你在哪里使用这个对象以及用于什么目的。
  • @LutzHorn 已编辑。使用的目的,只是为了获取一个对象中的一个json。
  • 名字里有... 2pojo
  • 那么它既不是DTO也不是VO。它只是一个 Java 类实例。

标签: java


【解决方案1】:

从技术上讲,it's a DTO 直到您将其他业务逻辑添加到类中,而不仅仅是 JSON 序列化注释。

我这么说的原因是它负责JSON对象的传输和反序列化

【讨论】:

    【解决方案2】:

    我会说 DTO 是一种 POJO,其设置目的是专门用于与数据源进行传输。所以我想说,如果您打算使用 POJO 仅用于与数据源之间的传输,那么我将其称为 DTO。那会让我知道它的目的是什么。如果 POJO 将用于其他事情,而不仅仅是向数据源传输数据和从数据源传输数据,那么我将其称为 POJO。

    通常我不再看到这些术语被大量使用。现在我只看到 POJO,它们通常进入一个名为“模型”或“域”的包。如果我在项目中看到这些包,我知道这些是 POJO,可用于业务逻辑或传输。

    为什么它可能不是 VO:VO 是小对象,例如坐标或金钱。它们是不可变的,并且不包含很多字段。因此,您实际上不需要 JSONshema2pojo 的多个字段。虽然在解析大型 JSON 时,JSONschema2pojo 可能会创建许多符合此定义的小类。

    编辑:这都是主观的。在这里只提供意见。

    【讨论】:

    • 这都是主观的 - 一个很好的理由不回答,而是根据意见关闭问题
    • 感谢您的回复!关于它在项目中本地化位置的附加信息对我来说是一个很好的观点。通常,这类类被设计成一个名为“models”的包,但是否有必要留在“models.dto”或“models.vo”中?
    • @BrennoLeal 没有什么是必要的,你给你的包起什么名字也没关系。这完全是一个偏好问题
    • @BrennoLeal 没有必要。如果里面的文件太多,最终需要将包分解成更小的包,并且查看它成为一个痛点。然后由您自行决定如何将包分解为更小的包..
    猜你喜欢
    • 2019-12-12
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 2019-10-02
    • 2012-01-22
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多