将pojo创建为具有Class字段或简单的好方法是什么

时间:2017-06-15 13:28:15

标签: java

将pojo创建为具有类字段或简单字段的好习惯是什么。 我正在创造像这样的pojo。

public class StatusDTO {

private String id;
private int totalNodes;
private int totalServlets;
private boolean status;
public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}


public int getTotalNodes() {
    return totalNodes;
}

public void setTotalNodes(int totalNodes) {
    this.totalNodes = totalNodes;
}

public int getTotalServlets() {
    return totalServlets;
}

public void setTotalServlets(int totalServlets) {
    this.totalServlets = totalServlets;
}

public boolean isStatus() {
    return status;
}

public void setStatus(boolean status) {
    this.status = status;
}

} 有人建议我这样做,如下所示

public class StatusDTO {

private String id;
private boolean status;
private Total total;

public Total getTotal() {
    return total;
}

public void setTotal(Total total) {
    this.total = total;
}
public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public boolean isStatus() {
    return status;
}

public void setStatus(boolean status) {
    this.status = status;
}
public static class Total {
    private int nodes;
    private int servlets;
    public int getNodes() {
        return nodes;
    }
    public void setNodes(int nodes) {
        this.nodes = nodes;
    }
    public int getServlets() {
        return servlets;
    }
    public void setServlets(int servlets) {
        this.servlets = servlets;
    }

}

}

它有什么不同?那两个人的好习惯是什么? 我正在使用此类来设置db info并将信息发送到Web套接字客户端(stomp)

2 个答案:

答案 0 :(得分:0)

嗯,好的Java应用程序中的一个重要事项是关注点分离,例如在机场应用程序中,提供客户最后一次飞行的服务不应该要求具有名字,姓氏的对象作为参数,社会安全号码,婚姻状况,性别或任何其他有关客户的信息,这些信息在检索客户的最后一次航班时完全无用(或应该),因此您需要有一个客户对象(包含所有客户信息)和另一个对象CustomerId(只有必要的位才能获得航班)。

另一个例子是网上商店应用程序,计算篮子总价的服务不应该要求所有关于篮子中所有文章(照片,描述,规格......)的信息,而只需要价格和折扣应该包含在另一个对象中。

在这里,你必须决定你的Total(你需要一个更好的名字)对象的问题是否可以单独考虑你的StatusDTO对象的问题,这样一个方法可能只需要没有关联的StatusDTO对象的Total对象。如果您可以单独使用它们,那么您应该有单独的对象,如果您不能这样做。

答案 1 :(得分:0)

在这些问题中,答案总是如此:这取决于。

像第一个类这样的简单类具有更简单和更小的优点。第二次尝试的优势在于,如果你的课程,也许是现在,或许以后,可以延长,如果你创建一个单独的Total课程可能会更容易。

良好的面向对象编程,Java非常强大,几乎总是要求你把所有内容都放在它自己的类中。

根据经验,我在以下情况下创建了一个单独的类:

  • 你的领域有一些功能。
  • 你有两个以上,mabye三个相互关联的字段(例如connectionHost,connectionPort)
  • 它只是一个模型类(例如Customer,Article)
  • 我可以在多个其他类中使用该字段

当然还有更多,但这些是最重要的一些(如果您认为还有另一个我忘记提及的重要内容,请发表评论)。