Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 22.07.05 08:20
Оценка: :)
Привет!

Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?
Вообще — насколько полезно/бесполезно их использование?
Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

Спасибо.

09.08.05 19:14: Перенесено модератором из '.NET' — AndrewVK
Страх ляка, а ти не бiйся!
Использование патернов
От: Аноним  
Дата: 22.07.05 08:37
Оценка: 13 (4) +2
Как бы вам так сказать.. В общем шаблоны это не библиотека компонент.. Это какие-то типовые решения, которые годами применяются множеством разработчиков. Зачастую при прочтении тех же GoF возникало deja vu: "ё-моё, я же это уже когда то реализовывал, там то и там то! так вот оказывается как оно называется.. а я то думал что изобрел это сам". Так что читать настоятельно рекомендуется, что бы не ломать голову над разработкой того что было уже давно придумано до вас.
Что до применения, то тут все довольно просто: если вы видите возможность применения какого то шаблона, и вам это решения кажется удачным — применяйте. Вроде еще никто не жаловался..
Deny everything...


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Использование патернов
От: Real_Asv Россия  
Дата: 22.07.05 09:01
Оценка: 3 (1)
Здравствуйте, WildWildWind, Вы писали:

WWW>Привет!


WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?

WWW>Вообще — насколько полезно/бесполезно их использование?
WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

WWW>Спасибо.


Существует очень много design patterns...Могу привести примеры которые реально понадобились в моей работе
1) Паттерн Bridge — позволяет гибко отделить интерфейс от его реализации. Применяется даже в VS.NET IDE
2) Паттерн Abstract Factory — создание группы объектов на основе некоторых параметров.
3) Паттерн Provider Model — грубо говоря работа с источником данных независимо от его вида.

Более подробно — в инете море информации и примеров..

От себя скромно добавлю — паттерны очень полезная штука, если надо могу скинуть примеры кода который применялся в реальных приложениях.
Control yourself.
Re: Использование патернов
От: vitaly_spb Россия  
Дата: 22.07.05 10:06
Оценка: 22 (5) +1
WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

В основном (почти в каждом проекте) использую Factory — для абстрагирования уровня данных и Strategy — часто для каких-то общих методов для бизнес-объектов (типа перевести DataSet в бизнес-объект).

Остальное (типа Command и т.п.) я не выделяю соответственно их названиям, они как-то сами собой естесственным образом появляются.

Вообще, паттерны с примерами и с индикатором "частота использования" неплохо описаны здесь:

http://dofactory.com/Patterns/Patterns.aspx
...Ei incumbit probatio, qui dicit, non qui negat...
Re[2]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 22.07.05 10:16
Оценка:
Здравствуйте, Real_Asv, Вы писали:

R_A>Здравствуйте, WildWildWind, Вы писали:



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


Огромное спасибо!
Если не сложно — сбросьте примеры на мыло system32@narod.ru
Страх ляка, а ти не бiйся!
Re: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 22.07.05 10:51
Оценка: :))
А свои патерны кто-то писал?
Страх ляка, а ти не бiйся!
Re: Использование патернов
От: Dr.Gigabit  
Дата: 22.07.05 11:14
Оценка: 4 (2) +1
Здравствуйте, WildWildWind, Вы писали:

WWW>Привет!


WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?

WWW>Вообще — насколько полезно/бесполезно их использование?
WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

WWW>Спасибо.


Design patterns help you learn from others' successes instead of your own failures" (c)Thinking in Patterns by Bruce Eckel
Minsk .NET Alliance http://minsk.gotdotnet.ru
Re[2]: Использование патернов
От: Dr.Gigabit  
Дата: 22.07.05 11:33
Оценка: 4 (2) :)
Здравствуйте, WildWildWind, Вы писали:

WWW>А свои патерны кто-то писал?


Ну 5 человек точно писали GoF и Фаулер
Minsk .NET Alliance http://minsk.gotdotnet.ru
Re[2]: Использование патернов
От: _FRED_ Черногория
Дата: 22.07.05 11:43
Оценка: 3 (1)
Здравствуйте, WildWildWind, Вы писали:

WWW>А свои патерны кто-то писал?


А как же! Я, например

Только получается плохо
Схема с описанием не влезает в 21"-монитор, распечатывается на А0 и висит на стене взаместо обоев .
Жду вот когда придёт рефакторинг и всё поправит .
<< RSDN@Home 1.1.4 beta 7 rev. 500 >> =03:43= [Windows XP — 5.1.2600.0]
under «*none*»
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 22.07.05 12:54
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>А как же! Я, например


_FR>Только получается плохо

_FR>Схема с описанием не влезает в 21"-монитор, распечатывается на А0 и висит на стене взаместо обоев .
_FR>Жду вот когда придёт рефакторинг и всё поправит .

А можете проказать свой шедевр (если не секрет)?
Просто очень интересно.
Страх ляка, а ти не бiйся!
Re[2]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 22.07.05 13:55
Оценка:
Здравствуйте, WildWildWind, Вы писали:

WWW>А свои патерны кто-то писал?


Просто насколько я понял — одно из преимуществ паттернов — делиться своими решениями с
другими программерами в доступной форме.
Может — кто-то пробовал оформлять свои решения в виде паттернов (не обязалельно — сложных)?
Или — это всё-таки в основном прерогативы учёныхмужей — а простым программерам нечего уши розвешивать
(в смысле — в основном учиться уму-разуму)?

Извините что повторяюсь.
Просто интересно увидеть — как реально работает технологя.

Cпасибо
Страх ляка, а ти не бiйся!
Re[3]: Использование патернов
От: Dr.Gigabit  
Дата: 22.07.05 14:07
Оценка: 3 (1)
Здравствуйте, WildWildWind, Вы писали:

WWW>Здравствуйте, WildWildWind, Вы писали:


WWW>>А свои патерны кто-то писал?


WWW>Просто насколько я понял — одно из преимуществ паттернов — делиться своими решениями с

WWW>другими программерами в доступной форме.
WWW>Может — кто-то пробовал оформлять свои решения в виде паттернов (не обязалельно — сложных)?
WWW>Или — это всё-таки в основном прерогативы учёныхмужей — а простым программерам нечего уши розвешивать
WWW>(в смысле — в основном учиться уму-разуму)?

WWW>Извините что повторяюсь.

WWW>Просто интересно увидеть — как реально работает технологя.

WWW>Cпасибо



Все верно, только есть одно НО — нужно что бы твой собеседник владел языком "паттернов". Если это условие выполняется, то, имхо,
гораздо проще донести свои идеи до собеседника.
А вообще, паттерны — The ABC of OOD
Minsk .NET Alliance http://minsk.gotdotnet.ru
Re[4]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 22.07.05 14:27
Оценка:
Здравствуйте, Dr.Gigabit, Вы писали:

DG>Все верно, только есть одно НО — нужно что бы твой собеседник владел языком "паттернов". Если это условие выполняется, то, имхо,

DG>гораздо проще донести свои идеи до собеседника.
DG>А вообще, паттерны — The ABC of OOD

Спасибо за ответ.

Можно ещё пару вопросов?
1) Есть ли такой ресурс, где бы все русскоязычные програмеры выкладывали свои решения в виде паттернов?
Если такового места нет — может завести его (например — как форум или проект RSDN)?
Нравится такая идея?
2) Как начать применять паттерны при условии что в целом это методология в конторе не юзается?
Плиз, поделитесь опытом.

Спасибо.
Страх ляка, а ти не бiйся!
Re[5]: Использование патернов
От: Dr.Gigabit  
Дата: 22.07.05 14:49
Оценка: 3 (1)
Здравствуйте, WildWildWind, Вы писали:

WWW>Здравствуйте, Dr.Gigabit, Вы писали:


DG>>Все верно, только есть одно НО — нужно что бы твой собеседник владел языком "паттернов". Если это условие выполняется, то, имхо,

DG>>гораздо проще донести свои идеи до собеседника.
DG>>А вообще, паттерны — The ABC of OOD

WWW>Спасибо за ответ.


WWW>Можно ещё пару вопросов?

WWW>1) Есть ли такой ресурс, где бы все русскоязычные програмеры выкладывали свои решения в виде паттернов?
WWW>Если такового места нет — может завести его (например — как форум или проект RSDN)?
WWW>Нравится такая идея?
Боюсь я, что если все русскоязычные программеры начнут выкладывать свои решения — то из общего числа от силы 0.5% сможет претендовать называться
паттерном.

WWW>2) Как начать применять паттерны при условии что в целом это методология в конторе не юзается?

WWW>Плиз, поделитесь опытом.
Паттерны — понятие весьма растяжимое, скажем далеко не в каждой конторе применяют Enterprise Patterns, но если мы говорим о паттернах GoF — то это, как я писал уже, алфавит ООП, тот минимум, которым должен свободно владеть нормальный разработчик.
Я бы не стал называть паттерны методологией (если речь, конечно идет о паттернах GoF), и использование/неипользование их в вашей компании не накладывает на вас абсолютно никаких ограничений. Другое дело, что это уже немного говорит о квалификации разработчиков.
Так что совет тут может один: использовать, экспериментировать, ну и пытаться достичь той стадии, когда возникнет потребность изобретать что-то свое.
Minsk .NET Alliance http://minsk.gotdotnet.ru
Re[6]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 22.07.05 15:02
Оценка:
Спасибо.

Здравствуйте, Dr.Gigabit, Вы писали:

DG>Здравствуйте, WildWildWind, Вы писали:


WWW>>Здравствуйте, Dr.Gigabit, Вы писали:


DG>>>Все верно, только есть одно НО — нужно что бы твой собеседник владел языком "паттернов". Если это условие выполняется, то, имхо,

DG>>>гораздо проще донести свои идеи до собеседника.
DG>>>А вообще, паттерны — The ABC of OOD

WWW>>Спасибо за ответ.


WWW>>Можно ещё пару вопросов?

WWW>>1) Есть ли такой ресурс, где бы все русскоязычные програмеры выкладывали свои решения в виде паттернов?
WWW>>Если такового места нет — может завести его (например — как форум или проект RSDN)?
WWW>>Нравится такая идея?
DG>Боюсь я, что если все русскоязычные программеры начнут выкладывать свои решения — то из общего числа от силы 0.5% сможет претендовать называться
DG>паттерном.

WWW>>2) Как начать применять паттерны при условии что в целом это методология в конторе не юзается?

WWW>>Плиз, поделитесь опытом.
DG>Паттерны — понятие весьма растяжимое, скажем далеко не в каждой конторе применяют Enterprise Patterns, но если мы говорим о паттернах GoF — то это, как я писал уже, алфавит ООП, тот минимум, которым должен свободно владеть нормальный разработчик.
DG>Я бы не стал называть паттерны методологией (если речь, конечно идет о паттернах GoF), и использование/неипользование их в вашей компании не накладывает на вас абсолютно никаких ограничений. Другое дело, что это уже немного говорит о квалификации разработчиков.
DG>Так что совет тут может один: использовать, экспериментировать, ну и пытаться достичь той стадии, когда возникнет потребность изобретать что-то свое.
Страх ляка, а ти не бiйся!
Re[6]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 22.07.05 15:19
Оценка:
Здравствуйте, Dr.Gigabit, Вы писали:

DG>Боюсь я, что если все русскоязычные программеры начнут выкладывать свои решения — то из общего числа от силы 0.5% сможет претендовать называться

DG>паттерном.

Ну тем не менее — если наберётся хоть с десяток паттернов — IMHO это будет очень хорошо
И кроме того — на этом ресурсе можно было бы обсудить создание и применеие паттернов.
Может — это будет интересно и поучительно.

P.S. Sorry за настойчивость.
Страх ляка, а ти не бiйся!
Re[3]: Использование патернов
От: RagiC Беларусь  
Дата: 22.07.05 15:24
Оценка: 3 (1) +3 :))
Здравствуйте, WildWildWind, Вы писали:

WWW>Или — это всё-таки в основном прерогативы учёныхмужей — а простым программерам нечего уши розвешивать (в смысле — в основном учиться уму-разуму)?


Нет, никто их специально не придумывает — просто так получилось — в туалет все одинаково ведь ходят — тоже хороший паттерн! Так и здесь.
Re[5]: Использование патернов
От: vitaly_spb Россия  
Дата: 22.07.05 15:28
Оценка: 3 (1)
WWW>1) Есть ли такой ресурс, где бы все русскоязычные програмеры выкладывали свои решения в виде паттернов?
WWW>Если такового места нет — может завести его (например — как форум или проект RSDN)?
WWW>Нравится такая идея?

Есть англоязычный:
http://www.patternshare.org/

WWW>2) Как начать применять паттерны при условии что в целом это методология в конторе не юзается?


Паттерны проектирования (не Enterprise) — это паттерны зачастую под конкретную задачу, а не на все приложение. Примени что-нибудь удачно, народ подтянется Так было в нескольких проектах, в которых я учавствовал — сгенерировал идею, народ понял и подхватил.
...Ei incumbit probatio, qui dicit, non qui negat...
Re: Использование патернов
От: GlebZ Россия  
Дата: 22.07.05 15:36
Оценка: 3 (1) +1
Здравствуйте, WildWildWind, Вы писали:

WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?

WWW>Вообще — насколько полезно/бесполезно их использование?
WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

На третьем ходу выяснилось, что гроссмейстер играет восемнадцать испанских партий. В остальных двенадцати черные применили хотя и устаревшую, но довольно верную защиту Филидора. Если б Остап узнал, что он играет такие мудреные партии и сталкивается с такой испытанной защитой, он крайне бы удивился.

Ильф и Петров, "Двенадцать стульев"

Я сначала начал применять, а потом узнал, что это называются паттерны. Честно говоря не понял постановку вопроса. Все таки желательно идти не от паттернов к задаче, а наоборот, от задачи к паттернам. И вообще, не стоит делать паттерны как самоцель.

Суть в том, что часто паттерны используются чересчур активно. Известна история о программисте, который, прочитав в первый раз книгу Банды Четырех, ухитрился использовать 16 паттернов в 32 строчках кода. Помню замечательный вечер, подогретый всего-навсего одним стаканчиком солода, когда мы с Кентом набрасывали статью под названием "Не паттерны проектирования: 23 дешевых трюка", где рассказали о таких вещах, как использование оператора "if" вместо паттерна "стратегия". В каждой шутке есть доля правды. Паттерны нередко используются там, где без них вполне можно было бы обойтись, однако это не делает хуже саму идею. Весь вопрос в том, как вы их используете.

http://www.citforum.ru/SE/project/design_dead/

С уважением, Gleb.
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[6]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 22.07.05 15:50
Оценка:
Здравствуйте, vitaly_spb, Вы писали:


_>Есть англоязычный:

_>http://www.patternshare.org/
Спасибо!
Это именно ОНО.
И всё ж таки — может что-то своё забабахаем?

_>Паттерны проектирования (не Enterprise) — это паттерны зачастую под конкретную задачу,

Конечно.
Но ведь задачи часто повторяются.
IMHO....

_> а не на все приложение. Примени что-нибудь удачно, народ подтянется Так было в нескольких проектах, в которых _>я учавствовал — сгенерировал идею, народ понял и подхватил.

Спасибо.
Если не сложно (только если не сложно) — поделитесь решениями.
Интересно.
Страх ляка, а ти не бiйся!
Re[2]: Использование патернов
От: GlebZ Россия  
Дата: 22.07.05 15:54
Оценка: 3 (1) +3
Здравствуйте, GlebZ, Вы писали:

И вообще, я бы предложил тебе изучать паттерны GOF в следующей последовательности:
1. Берешь какую нибудь интересную задачу, ну например разбор текстового файла в какой-нибудь, например — xml. Главное чтобы была какая-нибудь функциональная декомпозиция.
2. Реализуешь как умеешь.
3. Читаешь Фаулер "Рефакторинг". Притом первую часть. Сам справочник достаточно бесполезен и ненужен. Обрати внимание, там есть глава, что-то про вонючий код.
4. Рефакторишь программу, убираешь код с запашком.
5. Читаешь Гамму и узнаешь какие паттерны у тебя получились.

После какого-то опыта — паттерны, а точнее правильные решения дизайна, это продукт не сознания, а чисто подсознательный процесс. Его сначала реализуешь, а потом уже думаешь как это называется.

С уважением, Gleb.
Нет опыта полезней, чем опыт собственных ошибок.
(с)Я
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[4]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 22.07.05 15:56
Оценка:
Здравствуйте, RagiC, Вы писали:

RC>Нет, никто их специально не придумывает — просто так получилось — в туалет все одинаково ведь ходят — тоже хороший паттерн! Так и здесь.

Ёмко!
И всё-ж таки — хочется как-то почаще юзать и создавать паттерны.
Тем более что работодатели в вакансиях пишут "умение юзать паттерны".
А как научишся не юзая?


P.S. Розболтался я что-то.
Страх ляка, а ти не бiйся!
Re[3]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 22.07.05 16:02
Оценка:
ОГРОМНОЕ спасибо.
Очень интересная идея!

Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, GlebZ, Вы писали:


GZ>И вообще, я бы предложил тебе изучать паттерны GOF в следующей последовательности:

GZ>1. Берешь какую нибудь интересную задачу, ну например разбор текстового файла в какой-нибудь, например — xml. GZ>Главное чтобы была какая-нибудь функциональная декомпозиция.
GZ>2. Реализуешь как умеешь.
GZ>3. Читаешь Фаулер "Рефакторинг". Притом первую часть. Сам справочник достаточно бесполезен и ненужен. Обрати GZ>внимание, там есть глава, что-то про вонючий код.
GZ>4. Рефакторишь программу, убираешь код с запашком.
GZ>5. Читаешь Гамму и узнаешь какие паттерны у тебя получились.
Вы могли подробнее рассказать, Гамма — если это кнтга — как она называется?
Если нет — не могли бы Вы конкретизировать.
Хотя, впрочем, если это есть в книге Фаулера — пойму когда прочитаю.
(Простие за ламерский вопрос)

GZ>После какого-то опыта — паттерны, а точнее правильные решения дизайна, это продукт не сознания, а чисто GZ>подсознательный процесс. Его сначала реализуешь, а потом уже думаешь как это называется.

Да.
Это уже чем-то напоминаеи искусство.
В том смысле что в проессе создания кода участвует душа и подсознание. (IMHO)

GZ>С уважением, Gleb.

GZ>Нет опыта полезней, чем опыт собственных ошибок.
GZ>(с)Я
Страх ляка, а ти не бiйся!
Re[4]: Использование патернов
От: ENGLER Беларусь  
Дата: 22.07.05 16:13
Оценка: 3 (1)
Здравствуйте, WildWildWind, Вы писали:

skipped ...

WWW>Вы могли подробнее рассказать, Гамма — если это кнтга — как она называется?


http://www.rsdn.ru/res/book/oo/design_patterns.xml
Re[5]: Использование патернов
От: RagiC Беларусь  
Дата: 22.07.05 19:28
Оценка: 3 (1)
Здравствуйте, WildWildWind, Вы писали:

WWW>И всё-ж таки — хочется как-то почаще юзать и создавать паттерны.


Юзать — юзай, а вот создавать... хорош! И так уж достаточно их развелось — когда ж их изучать-то? Не одними паттернами сыты.
Re[5]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 23.07.05 08:19
Оценка:
Здравствуйте, ENGLER, Вы писали:

ENG>http://www.rsdn.ru/res/book/oo/design_patterns.xml<br />
<span class='lineQuote level1'>ENG&gt;</span>


Спасибо
Страх ляка, а ти не бiйся!
Re[6]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 23.07.05 08:21
Оценка:
Здравствуйте, RagiC, Вы писали:

RC>Юзать — юзай, а вот создавать... хорош! И так уж достаточно их развелось — когда ж их изучать-то? Не одними паттернами сыты.


Страх ляка, а ти не бiйся!
Re[4]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 23.07.05 08:29
Оценка:
Здравствуйте, RagiC, Вы писали:

RC>Нет, никто их специально не придумывает — просто так получилось — в туалет все одинаково ведь ходят — тоже хороший паттерн! Так и здесь.


Ну кстати — это ёущё вопрос.
Честно говоря я с паттернами не совсем роздуплился ещё.
И всё же рискну предположить что ходить в туалет — скорее инстинкт (то есть — инстинктивая реакция) а не паттерн.
Ведь человек (обычный) просто не можент НЕ ходить в туалет.

А вот паттерном будет например ходить в туалет АККУРАТНО.
Или — каждый раз при посещении туалета СЛИВАТЬ ЗА СОБОЙ ВОДУ.
То есть — действие ОСОЗНАННОЕ.

Кстати — Вы натолкнули меня на очень интересный вопрос.
Кто-то слышал о паттернах поведения (beheviour patterns)?
Они могли бы возникнуть на пересечении психологии и программирования.
Это соответственно может быть связано с программированием собственных (для начала) эмоций и поведения.

P.S. Прошу прощения за оффтопик у тех кому это отклонение от основной темы было неинтересно за отнятое у них время.

Спасибо.
Страх ляка, а ти не бiйся!
Re[2]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 23.07.05 08:31
Оценка:
Здравствуйте, Dr.Gigabit, Вы писали:

DG>“Design patterns help you learn from others' successes instead of your own failures" (c)Thinking in Patterns by Bruce Eckel


Cпасибо за чёткую формулировку.
Это во многом облегчает разговор.
Страх ляка, а ти не бiйся!
Re[5]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 23.07.05 08:33
Оценка:
Кстати — если паттернов поведения ещё не существует — может, составим свои?
Страх ляка, а ти не бiйся!
Re[7]: Использование патернов
От: vitaly_spb Россия  
Дата: 23.07.05 08:59
Оценка: 3 (1)
WWW>И всё ж таки — может что-то своё забабахаем?

На RDSN есть форум посвященный проектированию, можно свои гениальные идеи складывать туда Или пиши статьи!

WWW>Конечно.

WWW>Но ведь задачи часто повторяются.
WWW>IMHO....

Вот именно, задачи повторяются, поэтому надо повторять наиболее удачную их реализацию. В итоге это и будет твоим шаблоном.

WWW>Если не сложно (только если не сложно) — поделитесь решениями.

WWW>Интересно.

Самый простой пример — доступ к БД, здесь используется Factory. Создается класс DAOFactory, причем одиночка (Singleton). У него будут свойства в духе IUserDAO, IEntityDAO, ...

IUserDAO — интерфейс, который могут реализовывать различные классы. Смысл — в том, чтобы в DAOFactory в зависимости от текущих настроек выбрать нужный класс, реализующий этот интерфейс. Например

IUserDAO UserDAO
{
get{
if (_userDAO == null)
_userDAO = new MySQLUserDAO(); //Здесь может быть чтение из .config — файла
return _userDAO();
}
}

Factory наверное самый распространенный шаблон. В нашем случае мы легко можем заменить классы доступа к базе MySQL на MSSQL — то есть, получили расширяемое решение.
...Ei incumbit probatio, qui dicit, non qui negat...
Re[8]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 23.07.05 09:20
Оценка:
Спасибо!

Здравствуйте, vitaly_spb, Вы писали:

WWW>>И всё ж таки — может что-то своё забабахаем?


_>На RDSN есть форум посвященный проектированию, можно свои гениальные идеи складывать туда Или пиши статьи!


WWW>>Конечно.

WWW>>Но ведь задачи часто повторяются.
WWW>>IMHO....

_>Вот именно, задачи повторяются, поэтому надо повторять наиболее удачную их реализацию. В итоге это и будет твоим шаблоном.


WWW>>Если не сложно (только если не сложно) — поделитесь решениями.

WWW>>Интересно.

_>Самый простой пример — доступ к БД, здесь используется Factory. Создается класс DAOFactory, причем одиночка (Singleton). У него будут свойства в духе IUserDAO, IEntityDAO, ...


_>IUserDAO — интерфейс, который могут реализовывать различные классы. Смысл — в том, чтобы в DAOFactory в зависимости от текущих настроек выбрать нужный класс, реализующий этот интерфейс. Например


_>IUserDAO UserDAO

_>{
_>get{
_> if (_userDAO == null)
_> _userDAO = new MySQLUserDAO(); //Здесь может быть чтение из .config — файла
_> return _userDAO();
_>}
_>}

_>Factory наверное самый распространенный шаблон. В нашем случае мы легко можем заменить классы доступа к базе MySQL на MSSQL — то есть, получили расширяемое решение.
Страх ляка, а ти не бiйся!
Re[5]: Использование патернов
От: RagiC Беларусь  
Дата: 23.07.05 11:37
Оценка: :))
Здравствуйте, WildWildWind, Вы писали:

WWW>И всё же рискну предположить что ходить в туалет — скорее инстинкт (то есть — инстинктивая реакция) а не паттерн.


Природный паттерн. Реализован у большинства существ одинаково. Во! Даже название придумал — Defecator pattern.

WWW>Ведь человек (обычный) просто не можент НЕ ходить в туалет.
Re[2]: Использование патернов
От: Аноним  
Дата: 23.07.05 12:10
Оценка:
Здравствуйте, Real_Asv, Вы писали:

R_A>Здравствуйте, WildWildWind, Вы писали:


WWW>>Привет!


WWW>>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?

WWW>>Вообще — насколько полезно/бесполезно их использование?
WWW>>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

WWW>>Спасибо.


R_A>Существует очень много design patterns...Могу привести примеры которые реально понадобились в моей работе

R_A>1) Паттерн Bridge — позволяет гибко отделить интерфейс от его реализации. Применяется даже в VS.NET IDE
R_A>2) Паттерн Abstract Factory — создание группы объектов на основе некоторых параметров.
R_A>3) Паттерн Provider Model — грубо говоря работа с источником данных независимо от его вида.

R_A>Более подробно — в инете море информации и примеров..


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


А можно и мне igor_fle@hotmail.com
Re[9]: Использование патернов
От: Tom Россия http://www.RSDN.ru
Дата: 23.07.05 13:15
Оценка: 3 (1) +3
WWW>Спасибо!
Когда след раз захочется сказать спасибо — это можно делать без такого оверквотинга
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Народная мудрось
всем все никому ничего(с).
Re: Использование патернов
От: MFCOM Россия  
Дата: 23.07.05 20:14
Оценка: 3 (1)
Думаю, что все их используют, только не все знают об этом.

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

Первый шаблон, который я применил (тогда я о том не знал, что так оно называется — студентом был), назывался Фабрика_Классов. А было это 11 (уже...) лет назад
Re[10]: Использование патернов
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 24.07.05 19:56
Оценка:
Ok.
Учту.
Страх ляка, а ти не бiйся!
Re[2]: Использование патернов
От: Аноним  
Дата: 10.08.05 14:44
Оценка:
Здравствуйте, Real_Asv, Вы писали:

R_A>Здравствуйте, WildWildWind, Вы писали:


WWW>>Привет!


WWW>>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?

WWW>>Вообще — насколько полезно/бесполезно их использование?
WWW>>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

WWW>>Спасибо.


R_A>Существует очень много design patterns...Могу привести примеры которые реально понадобились в моей работе

R_A>1) Паттерн Bridge — позволяет гибко отделить интерфейс от его реализации. Применяется даже в VS.NET IDE
R_A>2) Паттерн Abstract Factory — создание группы объектов на основе некоторых параметров.
R_A>3) Паттерн Provider Model — грубо говоря работа с источником данных независимо от его вида.

R_A>Более подробно — в инете море информации и примеров..


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


А мне примерчики не скинешь ?
сюда

Кстати — а что это за паттерн Provider Model ? Первый раз слышу ...
Между прочим...
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 10.08.05 16:21
Оценка: 3 (1)
Здравствуйте, WildWildWind, Вы писали:

WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?


Паттерны не "используют". Паттерны — реализуют. Хотя, можно сказать, что "использовано описание паттерна" или "использована библиотечная реализация паттерна такого-то".

Поэтому, кстати, бессмысленно жонглировать выражениями типа: "А какой тут паттерн использовать?"

WWW>Вообще — насколько полезно/бесполезно их использование?


Совершенно бесполезно. Полезно понимать — что, зачем и почему.

WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?


Устойчивые методы решения задач похожей структуры (паттерны, собственно) выделяются разработчиком где-то ко второму случаю появления похожей задачи. Или после глубоко осмысления первого случая столкновения с задачей. Паттерны могут быть у каждого своими, а могут и оказаться похожими на те, что описаны у GoF.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: Использование патернов
От: jazzer Россия Skype: enerjazzer
Дата: 10.08.05 16:33
Оценка: 3 (1)
Здравствуйте, WildWildWind, Вы писали:

WWW>Привет!


WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?


Например, каждый, кто писал на MFC, использовал паттерн MVC (Model-View-Controller) — он просто встроен в framework.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[3]: Использование патернов
От: Real_Asv Россия  
Дата: 10.08.05 18:40
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Real_Asv, Вы писали:


R_A>>Здравствуйте, WildWildWind, Вы писали:


WWW>>>Привет!


WWW>>>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?

WWW>>>Вообще — насколько полезно/бесполезно их использование?
WWW>>>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

WWW>>>Спасибо.


R_A>>Существует очень много design patterns...Могу привести примеры которые реально понадобились в моей работе

R_A>>1) Паттерн Bridge — позволяет гибко отделить интерфейс от его реализации. Применяется даже в VS.NET IDE
R_A>>2) Паттерн Abstract Factory — создание группы объектов на основе некоторых параметров.
R_A>>3) Паттерн Provider Model — грубо говоря работа с источником данных независимо от его вида.

R_A>>Более подробно — в инете море информации и примеров..


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


А>А мне примерчики не скинешь ?

А> сюда

А>Кстати — а что это за паттерн Provider Model ? Первый раз слышу ...


Я сам первый раз недавно услышал, вот оно:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspnet/html/asp02182004.asp

Мне не очень нравится как в статье все расписано, но общую суть уловить можно.
Control yourself.
Re[2]: Использование патернов
От: slavdon  
Дата: 10.08.05 20:03
Оценка:
Здравствуйте, Real_Asv, Вы писали:

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


Ну и до кучи belikov-slava@yandex.ru
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
silent
Re[3]: Использование патернов
От: Аноним  
Дата: 11.08.05 06:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Real_Asv, Вы писали:


R_A>>Здравствуйте, WildWildWind, Вы писали:


WWW>>>Привет!


WWW>>>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?

WWW>>>Вообще — насколько полезно/бесполезно их использование?
WWW>>>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

WWW>>>Спасибо.


R_A>>Существует очень много design patterns...Могу привести примеры которые реально понадобились в моей работе

R_A>>1) Паттерн Bridge — позволяет гибко отделить интерфейс от его реализации. Применяется даже в VS.NET IDE
R_A>>2) Паттерн Abstract Factory — создание группы объектов на основе некоторых параметров.
R_A>>3) Паттерн Provider Model — грубо говоря работа с источником данных независимо от его вида.

R_A>>Более подробно — в инете море информации и примеров..


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


А>А мне примерчики не скинешь ?

А> сюда

А>Кстати — а что это за паттерн Provider Model ? Первый раз слышу ...


что-то так и не пришли примерчики
Re: Использование патернов
От: AndreyFedotov Россия  
Дата: 11.08.05 09:05
Оценка: 3 (1) +2
Здравствуйте, WildWildWind, Вы писали:

WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?

WWW>Вообще — насколько полезно/бесполезно их использование?

На мой взгляд паттерны полезнее всего рассматривать как некоторые приёмы решения определённых задач. Подобно тому, как есть приёмы решения задач в математике или физике. То есть можно, конечно, каждый раз решать задачу по-разному — оригинальным и не традиционным способом, но гораздо полезнее решать её используя стандартные приёмы — применение которых хорошо отработано на данном типе задач. Собственно паттерн — это описание приёма плюс некоторые примеры, как его можно реализовать. Как правило паттерны не являются готовыми решениями — это лишь шаблон, заготовка, которую ещё нужно доработать до решения конкрентной задачи. Однако это гораздо быстрее, чем изобретать каждый раз решение с нуля.
По этой причине попытка создания библиотеки паттернов — как готовых решений — бесперспективна. Это всё равно, что создать бибилиотеку решений всех возможных математических задач.

WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

Как и большинство других разработчиков — писал код, а потом узнал, что вот это объявлено таким то патерном, в вот то — другим.
Re: Использование патернов
От: Airat Burganov Россия http://www.burganov.com
Дата: 11.08.05 19:39
Оценка: 3 (1)
Здравствуйте, WildWildWind, Вы писали:

WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?

WWW>Вообще — насколько полезно/бесполезно их использование?
WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?
Последние использованные в работе:
Singleton
эээ.. Посетитель кажется называется (GoF рядом нет, посмотреть..)
Command — хочешь, не хочешь будешь использовать Swing на том и стоит
Re[5]: Использование патернов
От: Чипсет Россия http://merlinko.com
Дата: 13.08.05 23:08
Оценка: 3 (1)
Здравствуйте, WildWildWind, Вы писали:

WWW>Здравствуйте, Dr.Gigabit, Вы писали:


DG>>Все верно, только есть одно НО — нужно что бы твой собеседник владел языком "паттернов". Если это условие выполняется, то, имхо,

DG>>гораздо проще донести свои идеи до собеседника.
DG>>А вообще, паттерны — The ABC of OOD

WWW>Спасибо за ответ.


WWW>Можно ещё пару вопросов?

WWW>1) Есть ли такой ресурс, где бы все русскоязычные програмеры выкладывали свои решения в виде паттернов?
WWW>Если такового места нет — может завести его (например — как форум или проект RSDN)?
WWW>Нравится такая идея?
WWW>2) Как начать применять паттерны при условии что в целом это методология в конторе не юзается?
WWW>Плиз, поделитесь опытом.

WWW>Спасибо.


Видишь-ли. ИМХО, паттерны это инструмент для общения нежели для написания поскольку люди используют паттерны даже не подозревая о них. ИМХО, паттерны в первую очередь для того чтобы не говорить "некий класс который может быть создан один раз посредством упрятывания конструктора в private и т.д." а просто "Синглетон", в общении с коллегой. Ну и конечно, делиться можно и нужно... как это сделано в GoF, Александреску и т.д...
... << А писал я этот бред на RSDN@Home 1.1.4 stable rev. 510, под звуки тишины>>
"Всё что не убивает нас, делает нас сильнее..."
Re[6]: Использование патернов
От: fefelov Россия  
Дата: 15.08.05 05:14
Оценка:
Случайно наткнулся на "Обзор паттернов проектирования". Может быть кому-то пригодится...
Re[2]: Использование патернов
От: Аноним  
Дата: 13.02.06 21:00
Оценка:
Здравствуйте, Real_Asv, Вы писали:

R_A>Существует очень много design patterns...Могу привести примеры которые реально понадобились в моей работе

R_A>1) Паттерн Bridge — позволяет гибко отделить интерфейс от его реализации. Применяется даже в VS.NET IDE
R_A>2) Паттерн Abstract Factory — создание группы объектов на основе некоторых параметров.
R_A>3) Паттерн Provider Model — грубо говоря работа с источником данных независимо от его вида.

R_A>Более подробно — в инете море информации и примеров..


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



Mozno i mne Pleeease

val.maly@shaw.ca
А чем плохо хранить в коллекции ссылки на объекты?
От: Rothmans  
Дата: 15.02.06 14:34
Оценка:
Вычитал вот только что в дискуссии авторитетов проекта Janus
(Re[13]: Ошибки в TreeGrid
Автор: VladD2
Дата: 29.01.06
), что хранить ссылки на объекты в коллекции (типа List<T>) для последующего отображения в дереве (например) это вроде как моветон.

Я или не понял чего или что-то важное в жизни упустил

Может речь шла о том, что если в колллекции миллион объектов, то нецелесообразно их все хранить в памяти а подгружать по мере необходимости ака lazy load?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
RE: Использование патернов
От: Аноним  
Дата: 13.02.06 21:21
Оценка:
Привет!

Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?
Вообще — насколько полезно/бесполезно их использование?
Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

Спасибо.
Фаулер "Архитектура корпоративных програмных приложений"Today Is The Day All The Training Through
We Have Come For The Number One Not The Number Two
Let The Contest Begin Play Hard Fight To Win
Immortality Victory And Fame



данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
А чем плохо хранить в коллекции ссылки на объекты?
От: Аноним  
Дата: 15.02.06 15:05
Оценка:
Заодно полезно почитать и
AntiPatterns Refactoring Software Architectures and Projects in Crisis
SUNETA Мой блог


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Использование патернов
От: Chiрset Россия http://merlinko.com
Дата: 16.02.06 14:39
Оценка:
Здравствуйте, WildWildWind, Вы писали:

WWW>Привет!


WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?

WWW>Вообще — насколько полезно/бесполезно их использование?
WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

WWW>Спасибо.


Синглетон Майерса, фабрика, да лезть не хочеться в справочник
А как начал применять, да так же как и Буст, и СТЛ. Сначала пробежался по описанию ихнему а потом, через пару недель при разработке начал вспомнить что есть какой-то метод позволяющий иметь только одну инстанцию класса, а ну-ну, что это там....
"Всё что не убивает нас, делает нас сильнее..."
Re: Использование патернов
От: Гор Украина  
Дата: 17.02.06 15:38
Оценка: 3 (1)
Здравствуйте, WildWildWind, Вы писали:

WWW>Привет!


WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?

WWW>Вообще — насколько полезно/бесполезно их использование?
WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?

WWW>Спасибо.


А я бы посоветовал начать с паттерна Синглтон. Очень полезный, да и используется совместно со многими другими. В последнем проекте у меня два синглтона — один отвечает за конфигурацию приложения, другой за лог. Очень удобоно.
Re[7]: Использование патернов
От: vgrigor  
Дата: 21.02.06 08:03
Оценка: 3 (1)
Нет! товарищ...

Паттерны в оформленном виде — это сложно.
Это работа.

Горазо удобнее сказать — вот читай книжицу,
и вообрази что умные слова по поводу повторного оформленного
применения паттернов все понимают кроме тебя,
и расскажи другим это.
Винтовку добудешь в бою!
Re[6]: Использование патернов
От: vgrigor  
Дата: 21.02.06 08:06
Оценка:
RC>Юзать — юзай, а вот создавать... хорош! И так уж достаточно их развелось — когда ж их изучать-то? Не одними паттернами сыты.

Созавать — работающие повторно конструкции паттернов,
еше не научились хорошо.

Буржуи много создают поэтому.

А вы и не изуучили этого еще что-ли?
Винтовку добудешь в бою!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.