Шаблоны проектирования: что нового, где используются существующие? - PullRequest
0 голосов
/ 14 сентября 2009

Дополнительное задание для одного из моих классов. 30-45 минутная презентация / тематическое исследование по любой из этих двух тем:

  1. Примеры существующих в настоящее время шаблонов проектирования в реальных проектах: какую проблему они решают, чем они лучше других методов и т. Д.
  2. Новые шаблоны проектирования, какие проблемы они решают, чего не могут другие шаблоны проектирования, и т. Д.

Обратите внимание, что "новое" и "существующее" относятся к книге GoF, а шаблоны проектирования перечислены в .

Для первого, исходный код не требуется, но это, вероятно, плюс, поэтому проект с открытым исходным кодом будет лучшим.

Во-вторых, мне в основном нужно было бы дать описание, подобное описанному в книге GoF для каждого шаблона, с соответствующими мотивами, примерами и тому подобным.

У кого-нибудь есть хорошие идеи / указатели?

Ответы [ 6 ]

1 голос
/ 14 сентября 2009
0 голосов
/ 16 сентября 2009

Вы можете легко заполнить это время, просто сфокусировавшись на шаблоне Reactor (не в GoF). См. эту ссылку в Википедии для получения информации и примеров различных реализаций (Twisted for Python - одна).

0 голосов
/ 16 сентября 2009

нет новых дизайнов моделей. Те, что в книге «Банды четырех» (по модулю нескольких), в значительной степени ортогональны и полны. Есть много других типов узоров.

0 голосов
/ 14 сентября 2009

На вопрос «какие существуют новые шаблоны дизайна» ответить на ваш вопрос сложно, так как:

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

  • Существуют различные типы / виды шаблонов дизайна, в зависимости от слоя, в котором они применяются. Например, «Шаблон репозитория».
    Это шаблон, который не относится, например, к книге GoF, поскольку он действует на более высоком уровне / уровне, чем те, которые перечислены в этой книге. Это шаблон, который используется в «доменном слое» вашего приложения. Например, «шаблон спецификации».

0 голосов
/ 14 сентября 2009

Существует множество шаблонов сайтов вики-дизайна. Вот несколько примеров:

Что касается чрезвычайно очевидного паттерна Model-View-Controller используется в МНОГИХ приложениях, а не в оригинальной книге GoF по этой теме. Хотя, как упоминает NomeN в комментариях, это скорее образец архитектурного проектирования, но, возможно, стоит упомянуть в презентации на тему шаблонов проектирования.

Шаблон Null Object является еще одним распространенным, jQuery использует его. Пустой объект (в котором все еще есть все обычные функции) возвращается вместо 'null', когда вы ничего не сопоставляете с его основной функцией выбора.

0 голосов
/ 14 сентября 2009
  1. Проект SVN является очень хорошим примером шаблона клиент / сервер, хотя это скорее архитектурный шаблон, чем шаблон проектирования как таковой, вам может пригодиться (и он открыт источник).

    Взгляните на проектную документацию и очень информативную большую картинку .

  2. Шаблон посетителей широко используется в Eclipse. Посмотрите на GEF / Draw2D (Layout) или JDT (Core) для некоторых примеров. (Опять же, оба с открытым исходным кодом.)

На самом деле, если вы посмотрите код Draw2D или Eclipse, вы заметите целый ряд используемых шаблонов проектирования. Фабрики, Композиты, Команды, Memento (и Model-View-Controller, но опять же архитектурно). Просто возьмите проект и найдите его, найдите несколько указателей, где искать в документации .

...