Что такое название того шаблона?

Что такое название того шаблона? Я предполагаю, это - фабрика, но я не уверен.

using System.Windows.Forms;

    public class TreeNodeHelper
    {
        public TreeNode GetTreeNodeType1()
        {
            return new TreeNode("type1");
        }

        public TreeNode GetTreeNodeType2()
        {
            return new TreeNode("type2");
        }

        // etc
    }

Класс TreeNodeHelper возвращает различные экземпляры TreeNode. Это только возвращает экземпляры TreeNodes и ничто иное.

1
задан skaffman 29 July 2010 в 07:05
поделиться

2 ответа

Это своего рода фабрика, но не фабричный шаблон .

Также обратите внимание, что заводской шаблон (или варианты) обычно имеет только один метод с одним (или несколькими) параметрами, с помощью которых он может решить, для какого типа создать экземпляр, а не два (или более) метода.

Я бы также переименовал методы во что-то вроде «CreateNodeInstance» или что-то подобное. Вы создаете и возвращаете экземпляры, а не извлекаете типы.

Edit

Не зная ваших требований полностью, простая модификация была бы чем-то вроде

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#, но я сомневаюсь, что вам понадобится полная абстрактная фабричная реализация.

2
ответ дан 2 September 2019 в 22:38
поделиться

Он создает и возвращает объекты, так что это некий вариант Factory или Builder. Поскольку он возвращает простые объекты, а не сложные, это вариант Factory.

0
ответ дан 2 September 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: