Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?
Вообще — насколько полезно/бесполезно их использование?
Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?
Спасибо.
09.08.05 19:14: Перенесено модератором из '.NET' — AndrewVK
Как бы вам так сказать.. В общем шаблоны это не библиотека компонент.. Это какие-то типовые решения, которые годами применяются множеством разработчиков. Зачастую при прочтении тех же GoF возникало deja vu: "ё-моё, я же это уже когда то реализовывал, там то и там то! так вот оказывается как оно называется.. а я то думал что изобрел это сам". Так что читать настоятельно рекомендуется, что бы не ломать голову над разработкой того что было уже давно придумано до вас.
Что до применения, то тут все довольно просто: если вы видите возможность применения какого то шаблона, и вам это решения кажется удачным — применяйте. Вроде еще никто не жаловался..
Здравствуйте, WildWildWind, Вы писали:
WWW>Привет!
WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++? WWW>Вообще — насколько полезно/бесполезно их использование? WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?
WWW>Спасибо.
Существует очень много design patterns...Могу привести примеры которые реально понадобились в моей работе
1) Паттерн Bridge — позволяет гибко отделить интерфейс от его реализации. Применяется даже в VS.NET IDE
2) Паттерн Abstract Factory — создание группы объектов на основе некоторых параметров.
3) Паттерн Provider Model — грубо говоря работа с источником данных независимо от его вида.
Более подробно — в инете море информации и примеров..
От себя скромно добавлю — паттерны очень полезная штука, если надо могу скинуть примеры кода который применялся в реальных приложениях.
WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?
В основном (почти в каждом проекте) использую Factory — для абстрагирования уровня данных и Strategy — часто для каких-то общих методов для бизнес-объектов (типа перевести DataSet в бизнес-объект).
Остальное (типа Command и т.п.) я не выделяю соответственно их названиям, они как-то сами собой естесственным образом появляются.
Вообще, паттерны с примерами и с индикатором "частота использования" неплохо описаны здесь:
Здравствуйте, 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
Здравствуйте, 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.
Здравствуйте, _FRED_, Вы писали:
_FR>А как же! Я, например
_FR>Только получается плохо _FR>Схема с описанием не влезает в 21"-монитор, распечатывается на А0 и висит на стене взаместо обоев . _FR>Жду вот когда придёт рефакторинг и всё поправит .
А можете проказать свой шедевр (если не секрет)?
Просто очень интересно.
Здравствуйте, WildWildWind, Вы писали:
WWW>А свои патерны кто-то писал?
Просто насколько я понял — одно из преимуществ паттернов — делиться своими решениями с
другими программерами в доступной форме.
Может — кто-то пробовал оформлять свои решения в виде паттернов (не обязалельно — сложных)?
Или — это всё-таки в основном прерогативы учёныхмужей — а простым программерам нечего уши розвешивать
(в смысле — в основном учиться уму-разуму)?
Извините что повторяюсь.
Просто интересно увидеть — как реально работает технологя.
Здравствуйте, WildWildWind, Вы писали:
WWW>Здравствуйте, WildWildWind, Вы писали:
WWW>>А свои патерны кто-то писал?
WWW>Просто насколько я понял — одно из преимуществ паттернов — делиться своими решениями с WWW>другими программерами в доступной форме. WWW>Может — кто-то пробовал оформлять свои решения в виде паттернов (не обязалельно — сложных)? WWW>Или — это всё-таки в основном прерогативы учёныхмужей — а простым программерам нечего уши розвешивать WWW>(в смысле — в основном учиться уму-разуму)?
WWW>Извините что повторяюсь. WWW>Просто интересно увидеть — как реально работает технологя.
WWW>Cпасибо
Все верно, только есть одно НО — нужно что бы твой собеседник владел языком "паттернов". Если это условие выполняется, то, имхо,
гораздо проще донести свои идеи до собеседника.
А вообще, паттерны — The ABC of OOD
Здравствуйте, Dr.Gigabit, Вы писали:
DG>Все верно, только есть одно НО — нужно что бы твой собеседник владел языком "паттернов". Если это условие выполняется, то, имхо, DG>гораздо проще донести свои идеи до собеседника. DG>А вообще, паттерны — The ABC of OOD
Спасибо за ответ.
Можно ещё пару вопросов?
1) Есть ли такой ресурс, где бы все русскоязычные програмеры выкладывали свои решения в виде паттернов?
Если такового места нет — может завести его (например — как форум или проект RSDN)?
Нравится такая идея?
2) Как начать применять паттерны при условии что в целом это методология в конторе не юзается?
Плиз, поделитесь опытом.
Здравствуйте, 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), и использование/неипользование их в вашей компании не накладывает на вас абсолютно никаких ограничений. Другое дело, что это уже немного говорит о квалификации разработчиков.
Так что совет тут может один: использовать, экспериментировать, ну и пытаться достичь той стадии, когда возникнет потребность изобретать что-то свое.
Здравствуйте, 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>Так что совет тут может один: использовать, экспериментировать, ну и пытаться достичь той стадии, когда возникнет потребность изобретать что-то свое.
Здравствуйте, Dr.Gigabit, Вы писали:
DG>Боюсь я, что если все русскоязычные программеры начнут выкладывать свои решения — то из общего числа от силы 0.5% сможет претендовать называться DG>паттерном.
Ну тем не менее — если наберётся хоть с десяток паттернов — IMHO это будет очень хорошо
И кроме того — на этом ресурсе можно было бы обсудить создание и применеие паттернов.
Может — это будет интересно и поучительно.
Здравствуйте, WildWildWind, Вы писали:
WWW>Или — это всё-таки в основном прерогативы учёныхмужей — а простым программерам нечего уши розвешивать (в смысле — в основном учиться уму-разуму)?
Нет, никто их специально не придумывает — просто так получилось — в туалет все одинаково ведь ходят — тоже хороший паттерн! Так и здесь.
WWW>1) Есть ли такой ресурс, где бы все русскоязычные програмеры выкладывали свои решения в виде паттернов? WWW>Если такового места нет — может завести его (например — как форум или проект RSDN)? WWW>Нравится такая идея?
Есть англоязычный: http://www.patternshare.org/
WWW>2) Как начать применять паттерны при условии что в целом это методология в конторе не юзается?
Паттерны проектирования (не Enterprise) — это паттерны зачастую под конкретную задачу, а не на все приложение. Примени что-нибудь удачно, народ подтянется Так было в нескольких проектах, в которых я учавствовал — сгенерировал идею, народ понял и подхватил.
...Ei incumbit probatio, qui dicit, non qui negat...
Здравствуйте, WildWildWind, Вы писали:
WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++? WWW>Вообще — насколько полезно/бесполезно их использование? WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?
На третьем ходу выяснилось, что гроссмейстер играет восемнадцать испанских партий. В остальных двенадцати черные применили хотя и устаревшую, но довольно верную защиту Филидора. Если б Остап узнал, что он играет такие мудреные партии и сталкивается с такой испытанной защитой, он крайне бы удивился.
Ильф и Петров, "Двенадцать стульев"
Я сначала начал применять, а потом узнал, что это называются паттерны. Честно говоря не понял постановку вопроса. Все таки желательно идти не от паттернов к задаче, а наоборот, от задачи к паттернам. И вообще, не стоит делать паттерны как самоцель.
Суть в том, что часто паттерны используются чересчур активно. Известна история о программисте, который, прочитав в первый раз книгу Банды Четырех, ухитрился использовать 16 паттернов в 32 строчках кода. Помню замечательный вечер, подогретый всего-навсего одним стаканчиком солода, когда мы с Кентом набрасывали статью под названием "Не паттерны проектирования: 23 дешевых трюка", где рассказали о таких вещах, как использование оператора "if" вместо паттерна "стратегия". В каждой шутке есть доля правды. Паттерны нередко используются там, где без них вполне можно было бы обойтись, однако это не делает хуже саму идею. Весь вопрос в том, как вы их используете.
_>Есть англоязычный: _>http://www.patternshare.org/
Спасибо!
Это именно ОНО.
И всё ж таки — может что-то своё забабахаем?
_>Паттерны проектирования (не Enterprise) — это паттерны зачастую под конкретную задачу,
Конечно.
Но ведь задачи часто повторяются.
IMHO....
_> а не на все приложение. Примени что-нибудь удачно, народ подтянется Так было в нескольких проектах, в которых _>я учавствовал — сгенерировал идею, народ понял и подхватил.
Спасибо.
Если не сложно (только если не сложно) — поделитесь решениями.
Интересно.
И вообще, я бы предложил тебе изучать паттерны GOF в следующей последовательности:
1. Берешь какую нибудь интересную задачу, ну например разбор текстового файла в какой-нибудь, например — xml. Главное чтобы была какая-нибудь функциональная декомпозиция.
2. Реализуешь как умеешь.
3. Читаешь Фаулер "Рефакторинг". Притом первую часть. Сам справочник достаточно бесполезен и ненужен. Обрати внимание, там есть глава, что-то про вонючий код.
4. Рефакторишь программу, убираешь код с запашком.
5. Читаешь Гамму и узнаешь какие паттерны у тебя получились.
После какого-то опыта — паттерны, а точнее правильные решения дизайна, это продукт не сознания, а чисто подсознательный процесс. Его сначала реализуешь, а потом уже думаешь как это называется.
С уважением, Gleb.
Нет опыта полезней, чем опыт собственных ошибок.
(с)Я
Здравствуйте, RagiC, Вы писали:
RC>Нет, никто их специально не придумывает — просто так получилось — в туалет все одинаково ведь ходят — тоже хороший паттерн! Так и здесь.
Ёмко!
И всё-ж таки — хочется как-то почаще юзать и создавать паттерны.
Тем более что работодатели в вакансиях пишут "умение юзать паттерны".
А как научишся не юзая?
Здравствуйте, 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>(с)Я
Здравствуйте, RagiC, Вы писали:
RC>Юзать — юзай, а вот создавать... хорош! И так уж достаточно их развелось — когда ж их изучать-то? Не одними паттернами сыты.
Здравствуйте, RagiC, Вы писали:
RC>Нет, никто их специально не придумывает — просто так получилось — в туалет все одинаково ведь ходят — тоже хороший паттерн! Так и здесь.
Ну кстати — это ёущё вопрос.
Честно говоря я с паттернами не совсем роздуплился ещё.
И всё же рискну предположить что ходить в туалет — скорее инстинкт (то есть — инстинктивая реакция) а не паттерн.
Ведь человек (обычный) просто не можент НЕ ходить в туалет.
А вот паттерном будет например ходить в туалет АККУРАТНО.
Или — каждый раз при посещении туалета СЛИВАТЬ ЗА СОБОЙ ВОДУ.
То есть — действие ОСОЗНАННОЕ.
Кстати — Вы натолкнули меня на очень интересный вопрос.
Кто-то слышал о паттернах поведения (beheviour patterns)?
Они могли бы возникнуть на пересечении психологии и программирования.
Это соответственно может быть связано с программированием собственных (для начала) эмоций и поведения.
P.S. Прошу прощения за оффтопик у тех кому это отклонение от основной темы было неинтересно за отнятое у них время.
Здравствуйте, Dr.Gigabit, Вы писали:
DG>“Design patterns help you learn from others' successes instead of your own failures" (c)Thinking in Patterns by Bruce Eckel
Cпасибо за чёткую формулировку.
Это во многом облегчает разговор.
На 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...
Здравствуйте, 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 — то есть, получили расширяемое решение.
Здравствуйте, 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>От себя скромно добавлю — паттерны очень полезная штука, если надо могу скинуть примеры кода который применялся в реальных приложениях.
Думаю, что все их используют, только не все знают об этом.
Это полезно в той же степени, в которой полезно изучать и применять лучший чужой опыт, а не корячиться изобретать свой собственный (но такой же) велосипед.
Первый шаблон, который я применил (тогда я о том не знал, что так оно называется — студентом был), назывался Фабрика_Классов. А было это 11 (уже...) лет назад
Здравствуйте, 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>От себя скромно добавлю — паттерны очень полезная штука, если надо могу скинуть примеры кода который применялся в реальных приложениях.
Здравствуйте, WildWildWind, Вы писали:
WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?
Паттерны не "используют". Паттерны — реализуют. Хотя, можно сказать, что "использовано описание паттерна" или "использована библиотечная реализация паттерна такого-то".
Поэтому, кстати, бессмысленно жонглировать выражениями типа: "А какой тут паттерн использовать?"
WWW>Вообще — насколько полезно/бесполезно их использование?
Совершенно бесполезно. Полезно понимать — что, зачем и почему.
WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?
Устойчивые методы решения задач похожей структуры (паттерны, собственно) выделяются разработчиком где-то ко второму случаю появления похожей задачи. Или после глубоко осмысления первого случая столкновения с задачей. Паттерны могут быть у каждого своими, а могут и оказаться похожими на те, что описаны у GoF.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, WildWildWind, Вы писали:
WWW>Привет!
WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++?
Например, каждый, кто писал на MFC, использовал паттерн MVC (Model-View-Controller) — он просто встроен в framework.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, 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 ? Первый раз слышу ...
Здравствуйте, Real_Asv, Вы писали:
R_A>От себя скромно добавлю — паттерны очень полезная штука, если надо могу скинуть примеры кода который применялся в реальных приложениях.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, 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 ? Первый раз слышу ...
Здравствуйте, WildWildWind, Вы писали:
WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++? WWW>Вообще — насколько полезно/бесполезно их использование?
На мой взгляд паттерны полезнее всего рассматривать как некоторые приёмы решения определённых задач. Подобно тому, как есть приёмы решения задач в математике или физике. То есть можно, конечно, каждый раз решать задачу по-разному — оригинальным и не традиционным способом, но гораздо полезнее решать её используя стандартные приёмы — применение которых хорошо отработано на данном типе задач. Собственно паттерн — это описание приёма плюс некоторые примеры, как его можно реализовать. Как правило паттерны не являются готовыми решениями — это лишь шаблон, заготовка, которую ещё нужно доработать до решения конкрентной задачи. Однако это гораздо быстрее, чем изобретать каждый раз решение с нуля.
По этой причине попытка создания библиотеки паттернов — как готовых решений — бесперспективна. Это всё равно, что создать бибилиотеку решений всех возможных математических задач.
WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?
Как и большинство других разработчиков — писал код, а потом узнал, что вот это объявлено таким то патерном, в вот то — другим.
Здравствуйте, WildWildWind, Вы писали:
WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++? WWW>Вообще — насколько полезно/бесполезно их использование? WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?
Последние использованные в работе:
Singleton
эээ.. Посетитель кажется называется (GoF рядом нет, посмотреть..)
Command — хочешь, не хочешь будешь использовать Swing на том и стоит
Здравствуйте, 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, под звуки тишины>>
Здравствуйте, 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
А чем плохо хранить в коллекции ссылки на объекты?
), что хранить ссылки на объекты в коллекции (типа 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
Здравствуйте, WildWildWind, Вы писали:
WWW>Привет!
WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++? WWW>Вообще — насколько полезно/бесполезно их использование? WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?
WWW>Спасибо.
Синглетон Майерса, фабрика, да лезть не хочеться в справочник
А как начал применять, да так же как и Буст, и СТЛ. Сначала пробежался по описанию ихнему а потом, через пару недель при разработке начал вспомнить что есть какой-то метод позволяющий иметь только одну инстанцию класса, а ну-ну, что это там....
Здравствуйте, WildWildWind, Вы писали:
WWW>Привет!
WWW>Кто-то использовал паттерны (в частности — проектирования) при проектировании/разработке не очень сложных программ на С#/C++? WWW>Вообще — насколько полезно/бесполезно их использование? WWW>Поделитесь, пожалуйста,опытом, как Вы начали применять паттерны / какой был Ваш первый реализованный в программе патерн?
WWW>Спасибо.
А я бы посоветовал начать с паттерна Синглтон. Очень полезный, да и используется совместно со многими другими. В последнем проекте у меня два синглтона — один отвечает за конфигурацию приложения, другой за лог. Очень удобоно.
Паттерны в оформленном виде — это сложно.
Это работа.
Горазо удобнее сказать — вот читай книжицу,
и вообрази что умные слова по поводу повторного оформленного
применения паттернов все понимают кроме тебя,
и расскажи другим это.