Предлагаю прочитать эту статью: http://www.codinghorror.com/blog/2005/09/head-first-design-patterns.html
ключевая часть: Лучший способ научиться писать простой код - это написать простой код!Следует избегать шаблонов, как и всех форм сложности, до тех пор, пока они не станут абсолютно необходимыми. Это первое, что нужно освоить начинающим.Не последнее.
Я согласен с этим - завод нужен только тогда, когда он действительно нужен.
Хорошо, возвращаясь к теме, ключевое слово new
может быть злым, но в большинстве случаев оно, безусловно, не является и не должно быть источником головной боли.Видя
List <Person> persons = new ArrayList<Person>();
Прекрасно.Даже не смей думать о фабричном производстве ArrayList
или LinkedList
.Это было бы полностью переоценено.
" Я видел множество систем, в которых шаблон Factory использовался слишком часто. Например, если каждый объект в системе создается с помощью Factory вместо прямого создания экземпляра (например, new StringNode (Probably)), система, вероятно, имеет переизбыток фабрик."@ Joshua Kerievsky
Не добавляйте шаблоны преждевременно, если вы не уверены, что это хорошая идея, и вы не можете быть уверены вэто без достаточного опыта.Начинаем писать код с шаблонами в своем уме - вроде: Factory, это здорово, давайте посмотрим, когда я смогу его разместить! - это не очень хорошая идея :).Лучше было бы добавить шаблоны в места в вашем коде, которые вызывают проблемы, когда вы чувствуете (запах :) - запах кода), что это можно сделать как-то лучше.То есть рефакторинг к шаблонам .
Об этом есть отличная книга, и я дам вам ссылку на главу " Переместить Знание создания на фабрику "
http://www.informit.com/articles/article.aspx?p=1398606&seqNum=2
Я знаю, что это долго, но прочитайте это, пожалуйста, это, безусловно, стоит усилий