Java 将pojo创建为具有类字段或简单
将pojo创建为具有类字段或简单字段的良好实践是什么。 我正在创建这样的pojoJava 将pojo创建为具有类字段或简单,java,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 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 socket client(stomp)好的Java应用程序中的一个重要方面是分离关注点,例如,在机场应用程序中,提供客户最后一次航班的服务不应要求作为参数的对象具有名字、姓氏,社会保险号、婚姻状况、性别或任何其他有关客户的信息,这些信息在检索客户上次航班时完全无用(或应该无用),因此您需要一个对象客户(包含所有客户信息)和另一个对象客户ID(仅包含获取航班所需的位). 另一个例子是在线商店应用程序,计算购物篮总价的服务不应要求购物篮中所有物品(照片、说明、规格等)的所有信息,而应仅要求价格和折扣,这些信息应包含在另一个对象中
在这里,您必须决定是否可以将Total(您需要一个更好的名称)对象的关注点与StatusDTO对象的关注点分开,这样一个方法就可以只需要Total对象,而不需要关联的StatusDTO对象。如果你能把它们分开,那么你就应该有单独的对象,如果你不能,那就没有必要了。答案,就像在这些问题中一样,是:视情况而定 像第一个这样的简单类的优点是它们更简单、更小。第二次尝试的优点是,如果您的类(可能现在或以后)得到扩展,那么创建一个单独的Total类可能会更容易 良好的面向对象编程,而且Java是一个强大的OO,几乎总是要求您将所有内容都放到它自己的类中 根据经验,我创建了一个单独的类,如果:
- 您可以在字段中添加一些功能
- 您有两个以上的字段,可能是三个相互关联的字段(例如connectionHost、connectionPort)
- 它只是一个模型类(例如Customer、Article)
- 我可以在多个其他类中使用该字段
当然还有很多,但这些都是最重要的(如果你认为我忘了提到另一个重要的,请发表评论)。答案可能取决于你的班级应该提供什么样的服务。你能添加一些关于你的类的用途的信息吗?同意@TimBiegeleisen我们需要更多的细节,现在只是一种口味。第一种情况是“扁平”,问题是每次更改有关总计的字段时,都必须将状态更改为“(即,如果要添加新总计)。在第二种情况下,*Total可以在不接触StatusDTO的情况下得到增强,但您必须检查NullPointerException,而在第一种情况下则不需要。通常,如果类太长,尝试拆分类是一种好的做法。但是,如果拆分类,以及如何拆分,这在很大程度上取决于代码的语义。您应该阅读有关内聚的内容,coupling和单一责任原则。还有一个很好的简单案例,说明它是有意义的。谢谢你@AndréStannek。