c#生成器模式
我下面有一个为我的应用程序构建参考数据的类,你们认为它是构建器模式的一个很好的实现吗。我可以改变什么来改进它c#生成器模式,c#,design-patterns,C#,Design Patterns,我下面有一个为我的应用程序构建参考数据的类,你们认为它是构建器模式的一个很好的实现吗。我可以改变什么来改进它 public class ReferenceDataBuilder { private readonly List<Task> _builderTasks; private IDataProvider _dataAccess; private ReferenceData _referenceData; p
public class ReferenceDataBuilder
{
private readonly List<Task> _builderTasks;
private IDataProvider _dataAccess;
private ReferenceData _referenceData;
private bool _withPersistence;
private string _persistenceDirectory;
public ReferenceDataBuilder(IDataProvider dataAccess)
{
ValidationUtils.ArgumentNotNull(dataAccess, "dataAccess");
_dataAccess = dataAccess;
_referenceData = new ReferenceData();
_builderTasks = new List<Task>();
createBuilderTasks();
}
public virtual ReferenceData BuildAsync()
{
Parallel.ForEach(_builderTasks, (task) => { task.Start(); task.Wait(); });
return _referenceData;
}
private void createBuilderTasks()
{
_builderTasks.Add(new Task(() => _referenceData.Object1 = _dataAccess.GetObject1()));
_builderTasks.Add(new Task(() => _referenceData.Object2 = _dataAccess.GetObject2()));
_builderTasks.Add(new Task(() => _referenceData.Object3 = _dataAccess.GetObject3());
_builderTasks.Add(new Task(() => _referenceData.Object4 = _dataAccess.GetObject4());
}
}
感谢您直接回答您的问题-我不是在评论它是否是好代码,只是在评论它是否是构建器模式的良好实现: 这根本不是构建器模式。生成器模式与具有复杂构造函数的对象相关。它将类的构造与类本身分开 在本例中,以下是您的构造函数:
_referenceData = new ReferenceData()
代码所做的是检索数据并用该数据填充此对象。看起来对象的构造非常简单。再说一次,我只关注你的问题,不看其他任何东西。它是构建器模式的良好实现吗?它似乎与构建器模式没有任何关系。签出@DLeh,不要迁移垃圾。
_referenceData = new ReferenceData()