是的,使您的基本实体成为抽象类,然后让其他人对其进行扩展。
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?你怎么看?
如果您同意我之前的所有步骤:
我还有最后一个问题:
类之间的通信必须基于接口。但是我没有实体的接口。将来会为我制造问题吗?
谢谢。