Какие шаблоны проектирования улучшают производительность? - PullRequest
5 голосов
/ 16 февраля 2011

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

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

Ответы [ 5 ]

10 голосов
/ 16 февраля 2011

Flyweight уменьшает потребление памяти.

Шаблон Proxy можно использовать для оптимизации скорости.

Шаблон Bridge может изменить реализацию абстракции на лету - всегда выбирая самый эффективный.

8 голосов
/ 16 февраля 2011

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

Часто производительность кода зависит от относительно небольшого фрагмента (структуры данных, функции или даже одного цикла), поэтому он никак не входит в рамки шаблонов проектирования. Изменение простой функции в C на супероптимизированную версию в сборке, вероятно, не изменит поведения всего класса.

3 голосов
/ 16 февраля 2011

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

  • Завод
  • Синглтон
  • MVC
  • Аспектно-ориентированное программирование
  • Экстремальное программирование и экстремальные программисты (безжалостно)
  • DotNetNuke (дважды)
  • Drupal (один раз)

Руки вниз

1 голос
/ 16 февраля 2011

Ничего подобного нет. Шаблоны дизайна используются для облегчения development и maintance.

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

design pattern is a general reusable solution to a commonly occurring problem in software design
0 голосов
/ 17 ноября 2017

Шаблон пула объектов

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

Пулы объектов в основном используются для повышения производительности: в некоторых случаях пулы объектов значительно улучшают производительность.

...