Когда использовать фабричный метод, предоставляемый.NET Framework
Я видел несколько случаев, когда.NET Framework предоставляет заводскую версию метода, например:
против
Как мы выбираем, какой из них использовать, а какой лучше других?
3 ответа
В этом случае, как говорит Скотт Чемберлен в комментарии, DataCacheFactory предоставляется как средство создания или получения объекта DataCache по умолчанию. У этого класса нет другого пути из-за отсутствия открытых конструкторов DataCache.
Однако в некоторых случаях у вас есть выбор. принимать System.Threading.Task
например. Вы можете создать с помощью конструктора или с помощью TaskFactory.
Причина, по которой оба они предоставляются в некоторых случаях, заключается в том, что фабрики могут быть просто более полезными. Фабрика может предоставить вам предварительно созданный объект с набором определенных полезных свойств. Это может избавить вас от необходимости указывать их каждый раз, когда вы хотите новый объект.
Например, с помощью класса Task вы можете сделать:
var task = new Task(yourAction);
Или вы можете создать TaskFactory следующим образом:
var taskFactory = new TaskFactory(yourCancellationToken);
И когда вы звоните:
var task = taskFactory.StartNew(yourAction);
Ваша созданная задача:
- связанный с желаемым токеном отмены
- началось с указанного действия
Используя TaskFactory, вам не нужно создавать задачу, затем заполнить все эти свойства, а затем запустить задачу самостоятельно. Фабрика делает это для вас.
Вы используете DataCacheFactory для создания объектов DataCache. Дилеммы нет - используйте их обоих.
Эти две вещи не являются взаимоисключающими - вам нужно использовать их обе. Вы видите фабричный образец.