具有一对多关系的Java类中的循环依赖关系
我一直知道java不鼓励循环依赖,但我很难理解相互关联的对象之间的循环依赖是否有害。例如,如果我有具有一对多关系的Java类中的循环依赖关系,java,architecture,Java,Architecture,我一直知道java不鼓励循环依赖,但我很难理解相互关联的对象之间的循环依赖是否有害。例如,如果我有TelevisionShow、Season、和插曲,以下是不好的做法吗?若然,原因为何 public interface TelevisionShow { List<Season> getSeasons(); } public interface Season { TelevisionShow getTelevisionShow(); List<Episo
TelevisionShow
、Season
、和插曲
,以下是不好的做法吗?若然,原因为何
public interface TelevisionShow {
List<Season> getSeasons();
}
public interface Season {
TelevisionShow getTelevisionShow();
List<Episode> getEpisodes();
}
public interface Episode {
Season getSeason();
}
公共界面电视节目{
列出getSeasons();
}
公共界面季{
电视秀getTelevisionShow();
列出getSpidences();
}
公共界面插曲{
季节获得季节();
}
您将循环依赖项与循环引用混淆了。java垃圾收集器可以检测循环引用,如果循环引用没有到根引用的链接,则对其进行GC
顺便说一下,这些接口没有问题。这在使用JPA时非常常见,例如,您在对象之间有一个双向关系。在对象之间有
循环依赖关系是一个不错的做法,,(您使用了一个错误的术语,它是循环引用),但这取决于类模型的设计方式。如果设计需要此类循环引用,则可能存在此关系
例如,如果我有两个文件和文件夹接口
public interface IMyFile
{
........
}
public interface IMyFolder
{
........
}
然后很好地理解,每个文件夹
将包含文件列表
和文件夹
,因此IMyFolder
将
public interface IMyFolder
{
List<IMyFolder> getFolders();
List<IMyFile> getFiles();
}
公共接口IMyFolder
{
列出getFolders();
列出getFiles();
}
因此,按照设计要求在对象中使用循环引用一点也不坏。好吧,这不是循环依赖。顺便说一句,这里没有不好的做法