×Закрыть

Шаблоны проектирования и ООП. C#

Ускоряют ли работу шаблоны проектирования да и само ООП. Например написана небольшая программа без шаблона. Если переписать программу на подходящий для неё шаблон и при этом особо не оптимизировать код(в смысле методы обработчики). По сути получим более закрученную программу, что как я понимаю и есть ООП. Сама наявность патерна даст более лучшею скорость компиляции или шаблоны всего лишь для того что б в дальнейшем было удобнее обновлять код и совместно с другими прогерами удобно разрабатывать новые программы? Надеюсь вопрос понятен.

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Доброго вечора)не знав в який розділ написати, тому обрав ваш)
підкажіть, будь ласка, програму для 3д моделювання
тільки потрібно не просто для квартир,офісів і т.д., а наприклад, для спортивного майданчика, парку, різних виставкових місць

По сути получим более закрученную программу, что как ч понимаю и есть ООП.

Хехе, теоретично ООП це ідея поєднання даних і процедур роботи з ними в одному програмному модулі. Шаблони додають більше правил і рекомендацій як саме розбити систему на обєкти. Але з усіми цими наслідуваннями, інверсіями контролю, мутабельністю ООП код і справді майже завжди стає заплутаним. Зробити його не заплутаним дуже важко, я багато років намагався стати класним ООП програмістом і не вийшло :-). А от з функіональним кодом (functional programming) таких проблем, принаймні у мене, не виникає...

Шаблони, як і решта кращих практик проектування покликані покращити design for change вашої програми. Тобто після застусування шаблону програма повинна стати концептуально більш зрозуміла і такою, що в неї легко внести зміни.

Зручність внесення змін майже завжди негативно впливає на продуктивність програми, але зараз, враховуючи потужність сучасних машин, це не має значення. Час програміста — набагато дорожчий ресурс.

Нажаль, дуже часто, прочитавши про який небудь шаблон виникає спокуса його будь-що застосувати в своєму проекті. Але шаблон — це не абсолютне добро. Якщо у вас код простий як дерево і усім зрозумілий, а ви його зробили заплутанішим застосувавши шаблон, то ви зробили програму складнішою у супроводі, крім шаблонів є ще правила YAGNI, KISS, Rule of Three.

Всем спасибо за ответ. Понял

ООП != Шаблоны
Шаблоны это просто лучшие практики для каких то задач, они могут быть и в других парадигмах.
ООП призван упрощать структуру программы, а не влиять на производительность. Но некоторые изменения производительности могут быть: например если сделать одну функцию для обработки похожих данных, она может один раз загрузиться в кеш процессора и возможно быстрее обработает данные чем копипаста с похожим кодом, поскольку во втором сдучае следующий код может не подгрузится вовремя. Может быть и уменьшение производительности. Например вызовы функций вместо прямого чтения данных. Но это незначительная задержка.

Мабуть незалежно від мови програмування, ООП — це всього лиш можливість додатково ізолювати змінні відносно глобальної області пам’яті, плюс — можливість наслідування. Відповідно — вигода від ООП буде помітна лише на великих об’ємах коду.

ООП дозволяє сфокусуватись програмісту на обмеженій області програми, тим сами убезпечує самого програміста від перевантаження його оперативної пам’яті, а також оперативної пам’яті комп’ютера, де буде виконуватись написана ним програма.

Іншими словами, якщо вся програма вміщається в оперативну пам’ять програміста, а також в оперативну пам’ять комп’ютера, де вона буде виконуватись, то цілком можливо, що ООП у ній не потрібне.

Это все только для человека. Любой класс или даже вызов функции не бесплатен. С классом плюс один переход по Вирт указателю, с функцией плюс один Лонг джамп и работа на стеке. Но заморачиватся не стоит. Стоит заморачиватся когда приложение перепроектировано. Все что вы пишите — не бесплатно и выливается в мириады доп оп команд

Проще надо быть, ближе к народу))

А если серьезно, то топикстартеру лучше на go смотреть

Сама наявность патерна даст более лучшею скорость компиляции

Нет

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

Да, но нет. Чтобы совместно с другими было проще поддерживать уже написанное

Подписаться на комментарии