Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/88: Рейтинг темы: голосов - 88, средняя оценка - 4.91
41 / 0 / 0
Регистрация: 07.08.2013
Сообщений: 41

Задачи на понимание паттернов

19.08.2015, 15:50. Показов 17642. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, форумчане!
Изучаю паттерны, читаю книгу "Приемы ООП. Паттерны проектирования" (Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес). Пока читаю, все понятно, но как применять это на практике - не пойму. Найти какие-нибудь адекватные задачи сходу тоже не получается. Есть ли где-нибудь (желательно на русском) толково расписанные примеры или, что гораздо лучше, какие-нибудь задачи, которые смогли научить новичка мыслить шаблонами? (С фантазией у меня туго, самостоятельно не придумаю)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.08.2015, 15:50
Ответы с готовыми решениями:

Прошу расширить понимание для выполнения задачи
У меня появилась задача освежить знания по работе с базами данных, а конкретней в написании правильных sql запросов. Тут же поднял на...

Реализация паттернов
Привет! Изучаю сейчас паттерны для Obj-C, а за одно и немного Swift. Конечно для Swift-а пока-что мало каких-то материалов, но язык мне...

Использование паттернов
Приведите, пожалуйста, примеры использования паттернов в ПО, которое известно каждому или которым пользуется почти каждый. Приветствуются...

6
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
19.08.2015, 15:56
Википедия
и здесь https://sourcemaking.com/design_patterns
Цитата Сообщение от unspoken Посмотреть сообщение
мыслить шаблонами
это с опытом
самый простой пример напишите подключение к базе данных с использованием шаблона Singleton
1
41 / 0 / 0
Регистрация: 07.08.2013
Сообщений: 41
19.08.2015, 16:02  [ТС]
Цитата Сообщение от Poznakomlus
это с опытом
О том и речь, что теория есть, а практики - ноль За пример спасибо!
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
19.08.2015, 20:18
Цитата Сообщение от unspoken Посмотреть сообщение
О том и речь, что теория есть, а практики - ноль
что бы понять эти паттерны недостаточно примеров использования.
важно осознавать какую проблему они решают.

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

поэтому, вам нужно акцентрировать внимание не столько на сами паттерны,
сколько на проблемы, которые они решают.


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

у них у всех различное поведение.

первая мысль, которая может придти в голову:
давайте сделаем общего предка Animal,
от которого уже будут наследоваться всякие там волки, или овцы.

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

волки будут охотиться, овцы - щипать травку и убегать.
и тп.

все бы ничего, но поведение волков неизменно.
при таком подходе волки постоянно ведут себя одинаково (как волки).
а овцы - как овцы.

хотя их поведения и типичны для этих животных,
однако оно статичное.

но вот приходит менеджер и говорит,
что заказчикам этого мало.

нужно, что бы в зависимости от времени года,
конкретные виды животных так же изменяли свое поведение.

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

получается, что в зависимости от времени года
одно и тоже животное начинает вести себя по разному.

это означает, что поведение животных должно уметь изменяться в рантайме.

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

как вы порешаете проблему "иметь возможность изменять поведение налету" ?
0
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
20.08.2015, 08:14
Цитата Сообщение от unspoken Посмотреть сообщение
смогли научить новичка мыслить шаблонами
Наверное есть какие-нибудь учебники, но я бы Вам не рекомендовал пытаться "мыслить шаблонами". Тем более проектировать код, изначально опираясь на шаблоны.
Я бы посоветовал Вам вот что: находите проекты объектные с открытым исходным кодом и пытаетесь в коде обнаружить, выделить знакомые паттерны, попытайтесь понять решаемую задачу.
Вот это был бы хороший способ поближе и на практике понять шаблоны.
1
41 / 0 / 0
Регистрация: 07.08.2013
Сообщений: 41
20.08.2015, 11:19  [ТС]
Цитата Сообщение от hoggy Посмотреть сообщение
стратегии поведения животных становятся все более сложными и замороченными.
как вы порешаете проблему "иметь возможность изменять поведение налету" ?
Видимо, с помощью паттерна "стратегия". Оо
Клиент создает объект "поведение по весне", а этот объект уже создает объект поведения для конкретного животного.
Скорей всего, я ошибаюсь

Добавлено через 2 минуты
Цитата Сообщение от mporro Посмотреть сообщение
находите проекты объектные с открытым исходным кодом и пытаетесь в коде обнаружить, выделить знакомые паттерн
С этого все и началось, на работе код с абстрактными фабриками ввел меня в ступор) спасибо за совет)
0
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,885
20.08.2015, 13:44
Цитата Сообщение от unspoken Посмотреть сообщение
Пока читаю, все понятно, но как применять это на практике - не пойму.
В паттерне нужно понимать не только "как", но и "для чего".
Вы лучше задавайте этот вопрос отдельно (в отдельной теме) для каждого паттерна, назначение которого Вам не ясно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.08.2015, 13:44
Помогаю со студенческими работами здесь

Физический смысл паттернов
В чем состоится физический смысл паттернов, где найти литературу на эту тему?

Множество паттернов поиска
Драсъте :wall:, в общем так: есть кусок кода: private void Button2_Click(object sender, EventArgs e) { string...

Использование паттернов в Делфи
Доброе утро всем!)) По сабжу, возможно ли это? И если да, то есть ли литература какая нить. И например в C# классы созданные тобой,...

Задача на основе паттернов
Приветствую. Начал изучать паттерны программирования. Но не вижу как их применять. Вот, например, есть задача, решение которой...

Правильное использование паттернов
Всем привет. Пишу в этот топик впервые. Недавно начал изучать паттерны, и как раз на носу курсовая(язык Java). В курсовой будет...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru