链接链中对象的静态指针

时间:2012-12-03 14:38:29

标签: linked-list

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

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的所有实例都按创建顺序链接,而不使用显式链接列表或其他任何内容。

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

1 个答案:

答案 0 :(得分:0)

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