Как мы можем узнать, где и когда применять конкретные шаблоны проектирования? - PullRequest
8 голосов
/ 26 декабря 2009

Я просто изучал вопросы по шаблонам проектирования в Stackoverflow, и все упоминали о GoF- Design Pattern книге и Head First Design Patterns книге, чтобы изучить их.

Мои вопросы: как мы можем узнать where и when, можем ли мы применить конкретный Design Pattern.

Существуют ли какие-либо книги или онлайн-ресурсы, которые передают эти знания, или какие шаги мы должны предпринять, чтобы принять решение о where и when, нам следует использовать конкретные Design Patterns?

Ответы [ 8 ]

5 голосов
/ 26 декабря 2009

Рефакторинг к шаблонам, а не код к шаблонам - это общий совет.

4 голосов
/ 26 декабря 2009

Опыт - лучшее руководство для этого. Но в целом:

  • Не применяйте шаблон дизайна только ради его применения; убедитесь, что проблема действительно в том, о чем вы думаете, и что вы понимаете ее на уровне глубины, необходимой для применения шаблона проектирования.

  • Код для решения проблемы, а не для применения шаблона проектирования.

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

1 голос
/ 26 декабря 2009

Это похоже на умение ловить рыбу с правильными инструментами в первый раз ... довольно сложно, если вы никогда не сталкивались раньше. После некоторого времени и лекций он придет сам по себе.

Если вы допустили ошибку, внедрив шаблон проектирования, не подходящий для данной работы, вам будет трудно это сделать. Но вы изучите 2 из них (тот, который вы должны были взять, и тот, который вы взяли);)

Mike

1 голос
/ 26 декабря 2009

Первая книга очень хорошо объясняет, где и когда использовать шаблоны.

Это статья одного из авторов GoF:

http://www.artima.com/lejava/articles/gammadp.html

Не пытайся заставить их

1 голос
/ 26 декабря 2009

Я нашел FluffyCat.com , чтобы быть очень полезным источником примеров шаблонов проектирования. Он предоставляет примеры реализации Java и PHP всех шаблонов GoF, а также описание того, как должен работать каждый шаблон.

0 голосов
/ 26 декабря 2009

Я бы порекомендовал sourcemaking.com . Он содержит общее обсуждение того, как и когда использовать шаблоны проектирования GoF. И как вы можете объединить их для лучшего результата.

Также книга Джошуа Кериевского Рефакторинг к шаблонам может быть ценным ресурсом.

0 голосов
/ 26 декабря 2009

По моему опыту, хорошего понимания шаблонов проектирования будет достаточно, чтобы включить свет в вашей голове, когда вы сталкиваетесь с определенной проблемой, к которой может применяться шаблон проектирования. И, как сказал Иоанн, с опытом вы научитесь применять правильный.

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

Также бывают случаи, когда вы можете комбинировать рисунки или слегка адаптировать их к конкретной проблеме. И нередко видеть новую модель и думать: «Ну, я вроде как делал это все время». Шаблоны проектирования не были изобретены сами по себе, они были определены и названы. Это не значит, что они являются строгим рецептом для создания программного обеспечения.

0 голосов
/ 26 декабря 2009

Рефакторинг: Улучшение дизайна существующего кода Мартина Фаулера - действительно хорошая книга. Он показывает существующий обычный код, а затем показывает, почему и как его реорганизовать. Множество примеров того, как определить код, который должен быть подвергнут рефакторингу, и как сделать для этого небольшие пошаговые шаги.

...