Языки программирования и шаблоны проектирования - PullRequest
3 голосов
/ 24 сентября 2008

разные языки программирования имеют разные функции или не имеют определенных функций. Шаблоны проектирования - это способ обойти эти недостатки. Я видел книги и списки о шаблонах проектирования в статических объектно-ориентированных языках (Java, C ++), а также видео о шаблонах проектирования в Python.

Мне интересно увидеть некоторые распространенные шаблоны проектирования на других языках, таких как Forth, Icon, Lisp и т. Д. Краткое описание того, как они выглядят и зачем они нужны на языке, было бы неплохо. Возможно, краткое сравнение с другим языком, который решает эту проблему без шаблона проектирования.

Ответы [ 5 ]

8 голосов
/ 24 сентября 2008

Шаблоны проектирования иногда называют «идиомами». В неOO-языках (C, Forth, COBOL и т. Д.) Это просто «обычные способы ведения дел». Иногда их называют «алгоритмы». Каждый язык (в действительности, каждая дисциплина) имеет шаблоны проектирования решений.

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

В не-OO языках шаблоны не часто именуются и каталогизируются. Не знаю, почему это так, кажется, что так.

3 голосов
/ 24 сентября 2008

Для шаблона проектирования в LISP вы можете прочитать this , by Peter Norvig.

Цитата этот слайд :

16 из 23 шаблонов проектирования либо невидимы, либо проще

2 голосов
/ 24 сентября 2008

Шаблоны проектирования на самом деле не предназначены для привязки к какому-либо языку. Это более общие решения общих проблем.

2 голосов
/ 24 сентября 2008

В Лиспе вместо шаблонов проектирования вы используете:

  • лямбда и замыкание (анонимные функции и среды захвата)
  • функции высшего порядка (функции, связанные с функциями)
  • макросы (синтаксические расширения)
  • различные стратегии оценки (ленивая оценка, возврат)
  • функции первого класса, классы, пространства имен, модули и т. Д.
  • динамическая среда (например, замена функций в любое время)
  • и т.д.

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

0 голосов
/ 24 сентября 2008
...