0

在一些运行良好的遗留代码中,使用了以下方法:

public class A
{
    public static A First;
    public static A Last;

    public A Next;
    public A Previous;

    public A() 
    {
        if (First == null) { First = this; }
        else { Previous = Last; Previous.Next = this; }
        Last = this;
    }
 }

这样,所有类型 A 的实例都按创建顺序链接,而无需显式使用链接列表或其他任何东西。

事实上,我认为这是一个优雅的解决方案,但我也认为可以提出许多反对意见。我应该考虑哪些反对意见?

4

1 回答 1

0

我的主要反对意见:它不是线程安全的。如果在多个线程中使用此算法,则结果是不可预测的

于 2012-12-03T14:42:32.690 回答