何时使用.NET Framework提供的工厂方法

时间:2013-12-06 05:05:56

标签: c# factory-pattern base-class-library

我很少见到.NET Framework提供Factory版本的方法,例如:

VS

我们如何选择使用哪一个以及哪一个优于其他?

3 个答案:

答案 0 :(得分:2)

在这种情况下,正如Scott Chamberlain在评论中所说,DataCacheFactory是作为创建或获取默认DataCache对象的一种方式提供的。由于缺少DataCache公共构造函数,因此没有其他方法可用于此类。

但是,在某些情况下,您确实可以选择。以System.Threading.Task为例。您可以使用构造函数或使用TaskFactory创建。

在某些情况下提供两者的原因是工厂可以更有用。工厂可以为您提供预先创建的对象,其中包含某些有用的属性集。这可以使您不必在每次需要新对象时都指定它们。

作为示例:使用Task类,您可以执行以下操作:

var task = new Task(yourAction);

或者,您可以按如下方式创建TaskFactory:

var taskFactory = new TaskFactory(yourCancellationToken);

当你打电话时:

var task = taskFactory.StartNew(yourAction);

您创建的任务是:

  1. 与所需的取消令牌相关联
  2. 以指定的操作
  3. 开头

    使用TaskFactory,您不需要创建任务,然后填充所有这些属性,然后自己启动任务。工厂为你做。

答案 1 :(得分:1)

使用DataCacheFactory创建DataCache对象。没有困境 - 两者都使用它们。

答案 2 :(得分:0)

这两件事并不相互排斥 - 你需要同时使用它们。您正在看Factory Pattern