Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как паттерны проектирования могут повлиять на производительность и могут ли вообще?

Программирование
Shandy
  · 2,0 K
Лучший
Погромист на C#  · 3 февр 2022
Лекарство — яд, но яд — лекарство. Одна лишь доза превратит лекарство в яд, и яд в лекарство…
Повлиять могут, и по разному.
  1. Если программа очень простая, но вы в неё добавляете кучу новых сущностей, возомнив себя архитектором - в итоге снижается и производительность других разработчиков, тк в такой более сложной программе разобраться сложнее, и производительность самой программы, тк некоторые паттерны могут добавить свой оверхед. Пара примеров паттернов, которые точно дадут оверхед: Стратегия, Адаптер, Декоратор, Фасад (в общем всё, что добавляет новый уровень абстракции)
  2. Некоторые паттерны, применённые точечно могут повысить производительность, прикрыв слабое место языка программирования. Например в C# выгоднее создать объект в обобщённом методе через фабрику, чем через new. (источник)
  3. Некоторые паттерны изначально созданы для того чтобы повышать производительность за счёт переиспользования ресурсов. Например - Flyweight
PS: Моё мнение по поводу любых паттернов - по возможности, не следует ничего усложнять. Применение любого паттерна должно быть обосновано либо упрощением поддержки/добавления новой фичи, либо наличием фактической проблемы, которую этот паттерн должен решить.
2 эксперта согласны
Совершенно согласен. Не следует усложнять себе жизнь применением паттернов, если без них вполне можно обойтись.
Специалист в области разработки систем управления. Трансгуманист. Интересуюсь...  · 29 янв 2022
Безусловно, паттерны проектирования могут самым радикальным образом повлиять на производительность. Паттерн проектирования, по сути, представляет собой описание наиболее высокого уровеня алгоритма решения задачи. В зависимости от применённых паттернов, могут на более низком уровне потребоваться разные алгоритмы реализации (решающие, соответственно, разные подзадачи, обра... Читать далее
программист  · 2 февр 2022
Производительность - это может быть "производительность программиста <=> скорость разработки программы", а может быть "производительность разработанного ПО <=> скорость выполнения программы". С точки зрения скорости разработки (и только скорости) для средних проектов паттерны проектирования могут быть полезны или вредны. Для маленьких - только вредны. С точки зрения пр... Читать далее