实体类的正确设计。需要建议

浏览:26日期:2024-03-03
如何解决实体类的正确设计。需要建议?

是的,使您的基本实体成为抽象类,然后让其他人对其进行扩展。

public abstract class BaseEntity { private long id; public long getId() {return this.id}; public void setId(long id) {this.id = id;}; }

通常,应该始终对接口进行编程,而不是对实现进行编程。

解决方法

例如,我有实体类User:

public class User{ private long id; private String name; // setters and getters}

接下来,我添加新的实体类: Comment

public class Comment{private long id;private String comment;// setters and getters}

接下来,我可以添加越来越多的实体类。

而且,此刻我想:我可以/必须以逻辑结构绑定/连接我的实体类,还是没有?

我的意思是说?我尝试解释一下:

要点1:所有这些类:User,Comment以及其他- POJO。

想法1:需要通过接口或抽象类对此类进行逻辑绑定。

第2点:我看到,所有实体类都有相同的方法:getId和setId()。

想法2:需要避免在所有类中声明此方法。

我的解决方案:

添加界面BaseEntity:

public interface BaseEntity{public long getId();public void setId(long id);}

添加所有实体类必须实现此接口。

结果,我们逻辑上连接了所有实体类。并且我们保证每个实体类的实现getId()和setId()方法。

但是此解决方案无法解决带有多个声明getId和的问题setId。

一种解决方案是创建常规BaseEntity类:

public class BaseEntity { private long id; public long getId() {return this.id}; public void setId(long id) {this.id = id;}; }

并且所有实体类都必须扩展BaseEntity类。

嗯,听起来不错:)

但是,使用当前的实现-用户可以创建即时的BaseEntityClass。 这有意义吗? 我可以创建一个类BaseEntity吗?

也许,好的解决方案将此类标记为abstract?你怎么看?

如果您同意我之前的所有步骤:

我还有最后一个问题:

类之间的通信必须基于接口。但是我没有实体的接口。将来会为我制造问题吗?

谢谢。

相关文章: