有一个类 Company
,它引用了 Company
的另一个实例来表示 parent
。假设有四家公司 c1
、c2
、c3
& c4
和 c2
, c3
, c4
的母公司设置为c1
。
例如:
public class Company {
public Company parent;
public Company() { }
public Company(Company parent) {
this.parent = parent;
}
public static void main(String[] args) {
Company c1 = new Company();
Company c2 = new Company(c1);
Company c3 = new Company(c1);
Company c4 = new Company(c1);
}
如果我们将c2
设置为c1
的母公司:
c1.parent = c2;
然后它将创建一个 Cyclomatic Complexity公司层次结构中的无限循环,我们必须在我们的系统中避免这种情况。
我们希望能够在运行时检测到这一点。在上述情况下检查同一类对象的圈复杂度的最佳算法是什么?
最佳答案
您的任务与圈复杂度无关。您的实体基本上形成了一个图形,您想要检测其中的循环。常见的方法是执行 DFS .
您可以找到很多如何做到这一点的示例 over the internet .
关于java - 如何在我的对象层次结构中找到循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31913900/