Существует ли окончательный список шаблонов проектирования?[закрыто]

StackOverflow https://stackoverflow.com/questions/136337

  •  02-07-2019
  •  | 
  •  

Вопрос

Откуда взялась идея шаблонов проектирования, кто решил, что является шаблоном, а что нет, и дал им названия?Существует ли официальная организация, которая их определяет, или они существуют благодаря какому-то консенсусу сообщества?

Это было полезно?

Решение

Я думаю, что существует базовый "жизненный цикл шаблона проектирования".

  1. Автор пишет о шаблоне проектирования в книге.
  2. Книга становится хорошо читаемой, возможно, бестселлером
  3. Шаблон дизайна проникает в общественное сознание, завоевывает всеобщее внимание.
  4. Шаблон проектирования привыкает.Это хорошо работает.шаблон дизайна получает больше внимания
  5. Шаблон дизайна становится панацеей, им чрезмерно пользуются.
  6. Другой автор пишет: "Шаблон проектирования считается вредным".
  7. Шаблон проектирования становится Анти - Паттерн
  8. Другой автор становится знаменитым, пишет книгу, полную новых шаблонов дизайна...

Другие советы

Большинство людей указали бы на "Банда четырех" (Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес), написавший книгу. Шаблоны проектирования:Элементы многоразового объектно-ориентированного программного обеспечения.Реального окончательного списка не существует, поскольку полезные шаблоны проектирования, безусловно, обнаруживаются постоянно.

В Википедии есть хороший список. http://en.wikipedia.org/wiki/Design_pattern_ (компьютерная наука)

Большинство из них основаны на консенсусе сообщества (это сообщество состоит из людей, которые прочитали шаблоны проектирования или завершили код : /)

Краткий ответ:Нет.

Длинный ответ:Поскольку, если кто-то что-то проектирует, и это, как правило, повторно используется другими, новый "шаблон проектирования" будет просто создан (или обнаружен??)

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

Я бы добавил к предыдущим ссылкам эти две:

http://martinfowler.com/eaaCatalog/

http://c2.com/ppr/

Окончательного списка нет.Паттерны обнаруживаются, а не изобретаются, поэтому нет организации, которая могла бы сказать "это паттерн" или "это не паттерн".Даже если бы он и существовал, он никому не был бы полезен.

Несмотря на это, "знаменитыми" шаблонами являются те, которые описаны в Design Patterns или книге GOF.

Это также может быть полезно для распознавания анти-паттерны.

Это хороший список шаблонов (из Шаблоны архитектуры корпоративных приложений книга):

http://martinfowler.com/eaaCatalog/

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

Не существует ни одного официального консорциума, который определял бы, что является шаблоном, а что нет.Однако шаблоны обычно имеют длительный жизненный цикл, прежде чем они станут общепринятыми.Сообщество разработчиков начинает участвовать в таких мероприятиях, как PLOP (шаблонные языки программ) и их ежегодная конференция: Конференция 2008 года, который ориентирован на авторов шаблонов и энтузиастов для обсуждения темы шаблонов и разработки новых шаблонов.

Окончательного списка не существует - для его наличия , скорее всего , потребовались бы определенные полномочия , чтобы объявить , является ли шаблон шаблоном или просто ...что-то еще.

Некоторые шаблоны имеют смысл только в подмножестве языков - каноническом Книга ГОФ концентрируется на Java (или это C ++?Книга лежит у меня на столе в офисе), и некоторые из описанных шаблонов не очень актуальны, например, в Ruby или VB6.И наоборот, конечно.

Я бы сказал, что объединение списка из книги "Банда четырех" и книги Фаулера "Шаблоны корпоративной архитектуры" даст вам 99% того, что вам когда-либо нужно было знать.

Есть каноническая книга:Гамма, Хелм, Джонсон, Влиссидес:"Шаблоны десигнации - элементы многоразового объектно-ориентированного программного обеспечения", с которого все началось.Он содержит 23 шаблона.

Окончательного списка быть не может.Никогда.

Если вы видите какие-то решения проблемы, которые - для вас - имеют шаблон, который можно сформулировать, вы обнаружили шаблон проектирования.Вы всегда можете продолжать делать это.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top