0

我见过少数情况下,.NET Framework 提供了工厂版本的方法,例如:

对比

我们如何选择使用哪一种以及哪一种更好?

4

3 回答 3

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. 从指定的 Action 开始

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

于 2013-12-06T05:18:57.013 回答
1

您使用 DataCacheFactory 创建 DataCache 对象。没有两难选择——同时使用它们。

于 2013-12-06T05:15:24.843 回答
0

这两件事不是相互排斥的——你需要同时使用它们。您正在看到工厂模式

于 2013-12-06T05:19:17.537 回答