代码之家  ›  专栏  ›  技术社区  ›  mezoid

当两个类相互依赖时,用什么术语来描述?

  •  2
  • mezoid  · 技术社区  · 16 年前

    我有以下两个C#类:

    public class MyFirstClass : IMyFirstClass
    {
        MySecondClass mySecondClass;
        public MyFirstClass(IMySecondClass mySecondClass)
        {
            this.mySecondClass = mySecondClass;
        }
    
        public MyFirstClass() : this(new MySecondClass()){}
    }
    
    public class MySecondClass : IMySecondClass
    {
        MyFirstClass myFirstClass;
        public MySecondClass(IMyFirstClass myFirstClass)
        {
            this.myFirstClass = myFirstClass;
        }
    
        public MySecondClass() : this(new MyFirstClass()){}
    }
    

    您会注意到,当这两个类中的任何一个的默认构造函数被实例化时,由于需要进行无限次实例化,系统将崩溃。

    是否有一个官方术语来描述这个问题?

    2 回复  |  直到 16 年前
        1
  •  6
  •   Andrew Hare    16 年前

    这被称为a circular reference :

    循环引用,有时 被称为跑来跑去,是一种 一系列参考文献,其中最后一个 对象引用第一个,因此 引发了一系列的引用 无法使用。

        2
  •  1
  •   Joe    10 年前

    前几天我有了这个,发现了以下内容:

    What is Circular dependency and how do we resolve it?

    @上面的Andrew Hare是绝对正确的,但另一个术语是“循环依赖”。

    推荐文章