Это фабрика видов, но не фабричный шаблон .
Также обратите внимание, что фабричный шаблон (или варианты), как правило, имеет только один метод с одним (или несколькими) параметрами, с помощью которых он может решить, для какого типа создать экземпляр, а не два (или более) метода. .
Я бы также переименовал методы во что-то вроде «CreateNodeInstance» или что-то подобное. Вы создаете и возвращаете экземпляры, а не извлекаете типы.
Редактировать
Не зная ваших требований полностью, простая модификация была бы чем-то вроде
static public class TreeNodeHelper
{
static public TreeNode CreateNodeInstance(criterion)
{
if (criterion == xyz)
{
return new XyzTreeNode();
}
else if (criterion == foo)
{
return new FooTreeNode();
}
else if (etc...etc...
}
}
Это будет реализация шаблона фабричного метода , а не абстрактного фабричного шаблона . Последняя ссылка также содержит пример в C #, но я сомневаюсь, что вам понадобится полная реализация абстрактной фабрики.