2013-09-19 3 views
3

Этот вопрос следует из моего Selenium question. В этом вопросе я использую фабрику для создания объектов, и я подумал, возможно, ошибочно, что у моего класса не будет конструктора, если он создается экземпляром фабрики. Но, в комментариях к ответу, MrTi рекомендует присваивать что-то в конструкторе.Могут ли созданные фабрикой объекты иметь конструкторы?

Следовательно - могут ли объекты, созданные на заводе, иметь конструкторы?

+0

'если он создается экземпляром фабрики', как он создается на фабрике, если у него нет конструктора? – MyTitle

ответ

4

Да, они могут и должны. Но при использовании фабрики вы фактически хотите управлять созданием объектов и, следовательно, каким-то образом должны препятствовать созданию другого объекта путем прямого доступа к конструкторам. Для этого вы можете иметь фабрику в том же пакете, что и класс, который вы хотите создавать объекты и устанавливать видимость конструкторов для защиты пакетов.

4

Да. Обычно вы просто делаете конструктор видимым только на заводе. В Java это делается путем помещения фабрики в тот же пакет, что и классы, которые он будет создавать, и сохранение закрытых пакетов конструкторов (без модификатора доступа).

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