Вы используете шаблоны дизайна? - PullRequest
28 голосов
/ 14 августа 2008

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

Они действительно дают реальную ценность вашей работе? Или они просто о чем-то говорят, чтобы звучать умно?

Примечание: для целей этого вопроса игнорируйте «простые» шаблоны проектирования, такие как Singleton . Я говорю о разработке вашего кода, чтобы вы могли воспользоваться Model View Controller и т. Д.

Ответы [ 15 ]

1 голос
/ 27 августа 2008

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

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

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

1 голос
/ 14 августа 2008

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

Кроме того, я недавно использовал шаблон фабрики из базового класса для генерации и возврата нужного класса DataContext, который мне нужен на лету, используя LINQ .

Мосты используются при попытке склеить две разные технологии (например, Какао и Рубин на Mac, например)

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

Нужно только быть осторожным, чтобы не стать астрономом архитектуры !

1 голос
/ 14 августа 2008

MVC очень хорошо известен, так что да, мы довольно часто используем шаблоны проектирования. Теперь, если вы спрашиваете о шаблонах Gang of Four, я использую несколько, потому что другие сопровождающие будут знать дизайн и то, над чем мы работаем в коде. Однако некоторые из них остаются довольно неясными для того, что мы делаем, поэтому, если я использую один, я не получу всех преимуществ от использования шаблона.

Являются ли они важными, да, потому что это дает вам способ говорить о разработке программного обеспечения быстрым эффективным и общепринятым способом. Можете ли вы сделать лучшие индивидуальные решения, ну да (Сорта)?

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

1 голос
/ 14 августа 2008

Да, я использую много хорошо известных шаблонов проектирования, но я также заканчиваю созданием некоторого программного обеспечения, которое, как позже выясняется, использует «именованный» шаблон проектирования. Самые элегантные, многократно используемые конструкции можно назвать «узором». Это очень похоже на танцевальные движения. Мы все знаем вальс и двухэтапный, но не у всех есть название для «поднять и уйти», хотя большинство из нас это делают.

0 голосов
/ 15 августа 2008

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

Мне также очень нравятся Образцы Мартина Фаулера Архитектуры корпоративных приложений . Когда возникает проблема или задача, я переключаюсь на соответствующий раздел (в основном это справочник) и читаю несколько обзоров шаблонов. Как только я получу лучшее представление об общей проблеме и существующих решениях, я начну видеть долгосрочный путь, по которому мой код, скорее всего, пойдет через опыт других. Я принимаю гораздо лучшие решения.

Шаблоны дизайна определенно играют большую роль во всех моих идеях "на будущее".

...