![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Видел много книг, статей, где описание паттернов идет с использованием языков Java, C++, но вот с использованием Object Pascal'e я не видел. В связи с чем назрел вопрос вопрос - на сколько сильно распространены паттерны в Delphi? Или быть может программисты Delphi вообще ими не пользуются.
-------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| cemick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 2 Всего: 6 |
Может потому что Java, C++ раз в 50 распространненее Delphi потому и примеров для них больше
|
|||
|
||||
| 1000000dollars |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 6.10.2007 Репутация: нет Всего: 8 |
Их полное название Design Patterns (Паттерны Проектирования), следовательно они относятся больше к проектированию, чем к программированию. Потому они слабо привязаны к языкам программирования, а примеры даны для иллюстрации на наиболее популярных языка программирования.
Сам я использую паттерны и реализую их на Delphi. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Вопрос абстрактный.
А то, что не видел - значит не то читал. А применяешь ты их сплошь и рядом. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Патерны это не новая технология, просто системацизация удачных решений. Многие паттерны уже реализванны в VCL, и используются автоматом.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Мог бы привести примеры? Добавлено через 7 минут и 9 секунд Есть ли книги в электронном виде, описывающие существующие типы шаблонов с использованием Delphi? -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Абстрактная фабрика. Любая, форма, все компоненты на ней, создаются реализацией этого патерна. Загрузка изображений в TImage, делаем просто LoadFromFile, создаются различные объекты в зависимости от типа изображения. Пример 2х реализаций одного паттерна. Добавлено через 3 минуты и 2 секунды Использование патерна Visitor.
Панель выступает в качестве наблюдателя и отвечает за удаление объекта + различные уведомления сообщениями. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 70 Всего: 191 |
Application - Singleton
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
TStreamAdapter - Прокси.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Пытался в нете найти книженцию (ради интереса) про паттерны именно напримере Delphi. Ни чего вразумительного не нашел.
-------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
В русской википедии я вроде видел синглтон и абстрактную фабрику с примером на паскале. Посмотри еще в английской, может там больше примеров...
-------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
В Вики есть примеры.
http://ru.wikipedia.org/wiki/Шаблоны_проектирования http://ru.wikipedia.org/wiki/Шаблон_делегирования Добавлено через 12 минут и 44 секунды Простейший пример - SaveToStream Классический метод, которому пофигу, какой стрим ему подадут. Организован типовой сценарий - дай стрим, а я в него сохраню. Бери любой стрим или придумывай свой - оно всё равно работает. Паттерны - вообще такая штука, что под неё половина ООП подходит. Я бы даже не стал выводить это в отдельное понятие, ибо очень оно расплывчатое, общее и абстрактное. Суть проста - пишем для чего-то с задумкой, чтоб работало с подобным. Если я назначаю Caption контролу, то мне всё равно, что это за контрол. Я просто это делаю, а остальное не моя забота. Не понравилось - просто заменю контрол - отработает. Это лего - детальки взаимозаменяемы. Один принцип годится для разных деталек. И ты можешь не только менять детальки, но и делать свои, если они поддерживают тот же принцип. По сути - это просто архитектура. Точнее один из её стандартов, который давно вписан в неё, как аксиома. |
|||
|
||||
| X-Vlad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 570 Регистрация: 10.4.2002 Где: Украина, Львов Репутация: 1 Всего: 5 |
После того как ты создаешь проект и бросаешь на него контролы - у тебя уже используется паттерны. Дельфи автоматом реализует множество патернов, ло которых девелоппер недогадывается. Прочитай несколько книг по патернам (не смотри на код(если ты его непонимаешь), смотри на UML диаграммы, блок схемы). Все девелопперы на Дельфи используют патерны, просто много из них даже незнают что такое паттерн и их типы Был случай спрашивали нового девлопера который устраивался в большую кантору "что зделает программа после оператора except", варианты ответа: остановит выполнение, продолжит выполнение кода ниже... З.Ы. Э. Гамма Р. Хелм Р. Джонсон Дж. Влиссидес, Приемы обьектно-ориентированого проектирования. Патерны проектирования. Санкт-Петербург 2001 Это сообщение отредактировал(а) X-Vlad - 14.3.2009, 15:40 |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 16 Всего: 160 |
Читаем GoF (Gang of Four, Банда Четырёх Ещё ссылки по теме:
Это сообщение отредактировал(а) kemiisto - 14.3.2009, 16:09 -------------------- |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
На rsdn вроде было достаточно много статей посвящённых реализации паттернов именно на Delphi.
Но многие из них, на мой взгляд, какие-то надуманные. Добавлено через 14 минут и 35 секунд Вот ещё ссылки: Расширение возможностей паттерна Command Практика применения паттернов проектирования |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |