2009-04-06 10 views
2

Я задаюсь вопросом о правильном определении такого строительства:статический метод завода или создания метода

class A { 
public static A create() { 
    return new A(); 
} 

private A() { 
} 
} 

В Effective Java (пункт 1) и на wikipedia article я обнаружил, что это называется Static Factory Method (своего рода Заводской метод).

Но во время чтения Refactoring to Patterns (Глава 6) Я встретил ту же конструкцию, которая называется Способ создания. Кроме того, есть примечание о том, что его не следует перепутавать с образцом Factory Method.

Где правда?

ответ

1

Один подход заключается в вызове методов Беспараметрической методы создания и параметризованные (например, путем перечисления) - фабричных методами. В том, что фабрика более мощная и может создавать объекты разных типов.

Если вы используете метод без параметров, вам нужно решить, в каком другом месте использовать метод класса. С параметризованным методом вы передаете эту логику самому методу. Поэтому последний (завод) также сам решает, какой объект класса создавать.

+0

Извините, не удалось получить фактическое различие между методами создания и методами фабрики из вашего сообщения. Не могли бы вы объяснить это еще раз? –

+1

Чтобы вызвать метод создания, вам нужно решить, какой метод класса вызывать - B :: Create() или C :: Create(). С заводским методом вы просто класс F :: Create (параметр), где параметр представляет собой некоторое значение перечисления, например, и fcatory решает сам, какой объект класса создавать. – sharptooth

0

Ну, терминология часто варьируется между авторами, поэтому я не стал бы слишком беспокоиться об этом.

Я полагаю, однако, что «Refactoring to Patterns» предупреждает против вызова этого «заводского метода», потому что есть factory method pattern. Поскольку шаблон заводских методов больше, чем просто заводский метод, они предлагают другое имя, чтобы избежать путаницы.

Я думаю, вы могли бы назвать его «простой статической фабрикой», но это немного многословный (и нестандартный).

1

Метод создания - статический или нестатический метод, который создает экземпляр класса. Метод Factory - это метод, определенный и реализованный в иерархии классов, и создание имеет полиморфный характер.

 Смежные вопросы

  • Нет связанных вопросов^_^