我有一个加载过程,需要按照特定的顺序初始化加载的对象,具体取决于它们所属的类。有些类包含对其他类的引用,并依赖于首先初始化的其他类。
现在,我在每个类中使用静态数字字段定义顺序。程序员负责提出数值。然后我可以按这个数字对对象进行排序,并按正确的顺序初始化它们。
public interface ILookUpCollectible
{
// this is the number the classes get sorted by before initializing
int LoadPostProcessOrder { get; }
}
// start initializing, sort them first
// sort:
var sortedList = list.OrderBy(l => l.LoadPostProcessOrder);
int i = 0;
foreach (var item in sortedList)
{
item.LoadPostProcess(sn);
i++;
}
有更好的方法吗?我希望每个类明确说明它依赖于哪些其他类(通常是因为它包含对这些类的引用),然后从中派生顺序。