Модели проектирования увеличивают или уменьшают сложность приложения? - PullRequest
5 голосов
/ 17 апреля 2009

Я только что посмотрел на этот вопрос о SQL и перешел по ссылке о DAO на википедию . И это упоминает как недостаток:

«Как и во многих шаблонах проектирования, шаблон проектирования увеличивает сложность приложения». - Википедия

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

Спасибо.

Ответы [ 13 ]

0 голосов
/ 17 апреля 2009

Они не должны ни ни увеличивать, ни уменьшать сложность.

Вы должны всегда использовать соответствующий дизайн для вашего кода. Это может использовать общие шаблоны проектирования или нет.

Основными преимуществами шаблонов проектирования являются

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

Когда я преподаю шаблоны в Хопкинсе, я подчеркиваю две большие вещи:

  • Шаблоны - все о Сообщение о намерениях
  • Не используйте какие-либо особые узоры в качестве Золотого Молота; заблокируйте их в своем наборе инструментов и извлеките их, только если это имеет смысл для вашего приложения.
0 голосов
/ 17 апреля 2009

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

Проблемой являются шаблоны проектирования в целом, но их злоупотребление

0 голосов
/ 17 апреля 2009

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

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

...