Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484

Паттерны программирования

23.12.2019, 12:28. Показов 3943. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Насколько нужны паттерны программирования? Разве они сильно улучшают код? Как научится их использовать?
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2019, 12:28
Ответы с готовыми решениями:

Паттерны
Паттерн Flyweight Паттерн Domain Model (Модель области определения).Кто знает что это.И может на сайте есть коды хоть примерно этого.

Паттерны
Пролистал всю главную страницу и решил поставить вопрос в С++ , чем сможите помогите. Суть , изучаю объектно ориентированное...

Как называется движение программирования или теория программы считывающая др. язык программирования
Не знал, как по другому задать вопрос, и также назвать тему, но буду краток: Допустим я хочу создать программу, которая будет...

19
Just Do It!
 Аватар для XLAT
4202 / 2659 / 654
Регистрация: 23.09.2014
Сообщений: 9,001
Записей в блоге: 3
23.12.2019, 13:14
Лучший ответ Сообщение было отмечено ReYalp как решение

Решение

Цитата Сообщение от ReYalp Посмотреть сообщение
Насколько нужны паттерны программирования?
тут нужно изменить порядок:
c
есть паттерн --->>> ищем где он нужен
на
тут нужен паттерн --->>> ищем подходящий

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

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

Так рождается паттерн, но вы ещё на знаете или просто не задумываетесь об этом.

А потом, вам нечаянно говорят, что это называется паттерн и паттерн этнтот называется так то и так
и он, на самом деле очень древний: был изобретен во времена царя Гороха.
5
2631 / 1643 / 266
Регистрация: 19.02.2010
Сообщений: 4,362
23.12.2019, 13:41
ReYalp, многое зависит от прикладной области.
Я, например, практически только абстрактную фабрику использую. И то, бывает, что хочется плюнуть на этот паттёрн - ибо без фабрики это будет, например, всего 2 функции с телами из свитчей на 20 позиций, а для фабрики надо будет написать 20 классов-наследников от базового, у которых переопределить 2 виртуальные функции, но, кроме этого, ещё и пару-тройку конструкторов (пусть даже тела этих конструкторов пустые - но язык С++ жёстко требует наличия у класса конструкторов с именем, совпадающим с именем класса), и всё равно большой=20позиционный свитч останется в фабрике.
1
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
23.12.2019, 14:23  [ТС]
XLAT, но все же можно писать без паттернов и хорошо(или нет? ) Зачем некоторые работодатели требуют знания паттернов?
0
Just Do It!
 Аватар для XLAT
4202 / 2659 / 654
Регистрация: 23.09.2014
Сообщений: 9,001
Записей в блоге: 3
23.12.2019, 14:32
Цитата Сообщение от ReYalp Посмотреть сообщение
Зачем некоторые работодатели требуют знания паттернов?
Риторический вопрос, однако,
потому что ответ банален:
это сэкономит работодателям кучу денег.

вот есть же простейший паттерн RAII, ну, или идиома, как кому нравится.
И вот вы, например, как часто нарушаете(обходите мимо) этот паттерн???

А о последствиях энтих нарушений вы осведомлены?

Если нет, то вы потенциальный дырокол в бюджете той конторы, которая возможно вас возьмет на работу.
2
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
23.12.2019, 14:34
Лучший ответ Сообщение было отмечено ReYalp как решение

Решение

Цитата Сообщение от ReYalp Посмотреть сообщение
но все же можно писать без паттернов и хорошо(или нет?
Можно.
Точнее вы вполне можете не знать названий паттернов и их строгую формализацию. А просто в силу опыта, тем не менее, писать хороший, поддерживаемый код. Паттерн - это как теорема в математике. Вы, конечно, в силу опыта, можете нужные вам доказательства выводить самостоятельно, но гораздо эффективнее будет, если вы все-таки возьмете готовое. Это если конечно вашей задачей не является доказательство теоремы непосредственно.

Цитата Сообщение от ReYalp Посмотреть сообщение
Зачем некоторые работодатели требуют знания паттернов?
Чтобы хоть как-то отфильтровать людей, которые начнут городить велосипеды в тривиальных случаях. Предполагается, что если человек знает паттерны, то у него в голове есть какая-то система, в которую уложены какие-то типовые подзадачи и подходы к их решениям. Значит у человека есть опыт. К знанию паттернов я также здесь отношу и умение их не применять там, где это не уместно.
2
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
23.12.2019, 14:35
Цитата Сообщение от ReYalp Посмотреть сообщение
XLAT, но все же можно писать без паттернов и хорошо
можно
Цитата Сообщение от ReYalp Посмотреть сообщение
Зачем некоторые работодатели требуют знания паттернов?
1) они не хотят видеть работника, просиживающего дни и месяцы за изобретением велосипеда
2) они хотят, чтобы все работники в команде общались на одном языке
3) они не хотят долго и муторно объяснять работнику, почему он пишет говнокод, когда многие проблемы говнокода давно решены в паттернах
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
23.12.2019, 14:55
Цитата Сообщение от ReYalp Посмотреть сообщение
Насколько нужны паттерны программирования?
ими можно на форумах щеголять, например.

Цитата Сообщение от ReYalp Посмотреть сообщение
Разве они сильно улучшают код?
ниа.

Цитата Сообщение от ReYalp Посмотреть сообщение
Как научится их использовать?
практика, практика, практика, ...

Цитата Сообщение от ReYalp Посмотреть сообщение
Зачем некоторые работодатели требуют знания паттернов?
откровенных балбесов фильруют.
1
Я в этом не шарю
 Аватар для Segaman
4 / 4 / 3
Регистрация: 03.09.2014
Сообщений: 191
23.12.2019, 15:10
ReYalp, обьясню образно.
пердположим нам нужно собрать автомобиль.
автомобиль это двигатель, 4 колеса, подвеска и т.д.
без всего этого автомобиля не получится. да можно выкинуть подвеску, в итоге оно будет струдом ехать, но все же ехать.
однако собирая автомобиль нужно знать из чего стоит среднестатистический автомобиль.

а теперь представим ввиде кода
C++
1
2
3
4
5
6
класс Автомобиль
{
 Двигатель engine;
 Колеса wheel[4];
 Прочее misc;
}
а теперь создадим свой уникальный автомобиль с крутой подвеской
C++
1
2
3
4
класс КрутоеАвто : наследовать Автомобиль
{
 КрутаяПодвеска подвеска;
}
получаем авто у которого унаследовано 4 колеса, двигатель и прочая , плюс наша крутая подвеска.
вот я понятия не имею как зовется такой паттерн, однако применив его я не получил трёх-колесный велосипед с крутой подвеской, а именно автомобиль, который едет, а не волочётся под силой гнева водителя.
т.е. как было сказано ранее, необязательно знать паттерны наизучть, но ументь их применять весьма важно, чтобы не выстрелить себе к колено.
0
Неэпический
 Аватар для Croessmah
18145 / 10729 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
23.12.2019, 15:12
Озадачен.
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
23.12.2019, 15:12  [ТС]
Цитата Сообщение от hoggy Посмотреть сообщение
практика, практика, практика, ...
hoggy, а с чего собственно начать?) Вот естьу меня идея,хочу я написать что-то , как мне понять что мне тут нужен какой-то паттерн,нужен ли он вообще и какой именно?
0
Just Do It!
 Аватар для XLAT
4202 / 2659 / 654
Регистрация: 23.09.2014
Сообщений: 9,001
Записей в блоге: 3
23.12.2019, 15:33
Цитата Сообщение от ReYalp Посмотреть сообщение
как мне понять что мне тут нужен какой-то паттерн
можно использовать технику медитации,
которая поможет открыть каналы для потоков метазнаний к сенсорам сознания.
1
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
23.12.2019, 15:38
ReYalp, в процессе формализации задачи. Т.е. между вашей идеей и собственно кодом должна быть некая проектная документация, где формализуются основные вехи вашей будущей программы, конкретизируются сущности, устанавливаются связи между ними и т.д. Это и даст понимание насчет возможности использования готовых решений.
1
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
23.12.2019, 15:39  [ТС]
XLAT, ,ладно ,понял, пошел учить паттерны ,через 30 мин уже буду все понимать как настоящий новичок
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
23.12.2019, 15:43
Цитата Сообщение от ReYalp Посмотреть сообщение
а с чего собственно начать?) Вот естьу меня идея,хочу я написать что-то , как мне понять что мне тут нужен какой-то паттерн,нужен ли он вообще и какой именно?
забей.
не нужно об этом думать.

просто бери и пиши свою вундервафлю как можешь.
и как умеешь.
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
23.12.2019, 15:47  [ТС]
hoggy, но а как же паттерны?
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
23.12.2019, 18:10
Цитата Сообщение от ReYalp Посмотреть сообщение
но а как же паттерны?
загугли Банду четырёх.
почитаешь перед сном.
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
23.12.2019, 18:25  [ТС]
т hoggy,
Цитата Сообщение от hoggy Посмотреть сообщение
загугли Банду четырёх.
почитаешь перед сном.
прочитаю о банде или "Design Patterns: Elements of Reusable Object-Oriented Software"?
0
Неэпический
 Аватар для Croessmah
18145 / 10729 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
23.12.2019, 21:29
Цитата Сообщение от ReYalp Посмотреть сообщение
но а как же паттерны?
А потом окажется, что ты уже используешь паттерны.
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
23.12.2019, 22:48  [ТС]
Croessmah, та скорее всего использую, пересмотрел паттерны которые есть, я использую такие же подходы, ну не прям точь в точь, но логика та же +-
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.12.2019, 22:48
Помогаю со студенческими работами здесь

Порождающие паттерны
enum Direction {North, South, East, West} class MapSite { public: virtual void Enter() = 0; } class Room: public MapSite { ...

Паттерны метапрограммирования шаблонов
Нигде не могу найти литературу по паттернам метапрограммирования шаблонов, александреску не предлагать)) конкретно не могу понять как...

Паттерны проектирования (Фабрики)
Добрый вечер. Есть игра "Морской бой" из учебника Павловской Т.А . Задача: добавить в ней какой-либо шаблон проектирования. Я...

Тест и задачи на smartPtr и паттерны
Здравствуйте. По некоторым обстоятельствам случилось так, что выделенное время на подготовку к экзамену по С++ мне пришлось...

Гибкая архитектура и порождающие паттерны
У меня возник вопрос следующего характера. Предположим, что есть некоторый интерфейсный класс фильтра, есть реализации, наследованные от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru