2009-11-14 3 views

ответ

8

Wikipedia page всегда хорошее место для начала. Столбец «In Design Patterns» в связанной таблице сообщает вам, какие шаблоны были в книге GOF, а какие нет.

1

Список Википедии, обозначенный Брайаном, действительно довольно всеобъемлющий. Я с удивлением обнаружил, что ...

  • ... сейчас довольно известный Dependency Injection pattern.
  • ... или Borg pattern Alex Мартелли (в это хорошая альтернатива Синглтон см this link, идея заключается в том, чтобы разделить состояние, а не идентичности).
+0

Ну, вы знаете, Wikipedia * is * editable ... –

+1

Borg довольно специфичен для Python. Самые сильные образцы дизайна являются общими для разных языков. – PaulMcG

+0

@Brian, правильно! Фактически я иногда вношу свой вклад в WP и могу просто сделать это повторно. этот шаблон (мне просто нужно будет внимательно прочитать текущий список, так что многие образцы отображаются под разными именами и/или с такими тонкими отличиями ... – mjv

5

Для чего стоит Design Patterns on Wikipedia имеет список шаблонов дизайна, включая информацию о том, появляются ли эти шаблоны в книге GOF.

В верхней части моей головы GOF исключает целую категорию шаблонов проектирования, связанных с параллелизмом, включая двойную проверку блокировки, блокировку спина и почти все, что касается pi calculus.

Кроме того, некоторые модели, кажется, следует естественно от других парадигм программирования:

  • Есть много моделей в функциональном программировании, которые не появляются в книге GOF. Часто используемый шаблон проектирования включает использование переменных аккумулятора для преобразования нерекурсивных функций в хвостовые рекурсивные функции. Кроме того, концепция монады или того, для чего она использовалась, была бы полностью чужда оригинальным разработчикам. Неизменяемые объекты полностью отсутствуют в книге GOF.

  • Масштабная система Lisp, вероятно, может считаться шаблоном проектирования или показательным.

  • Я никогда не использовал язык программирования на основе стека, но я уверен, что у программистов Forth есть много трюков, чтобы заставить их алгоритмы корректно отображать стек.

  • В абстрактном виде вы можете рассматривать отношения между таблицами в схеме реляционной базы данных как шаблон дизайна: один-ко-многим, много-к-одному, много-ко-многим, к одному. Более того, существуют предсказуемые способы моделирования иерархических данных, и вот довольно простой способ для печенья - modeling tagged unions in SQL.

  • т.д.

2

Есть только несколько других Öö дизайн узоры. один - нулевой объект (я забыл другое). они плюс 23 gof являются ортогональными и полными. там действительно больше нет. все остальное - это всего лишь комбинация этих 25 или около того.

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