Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Design Pattern, Bridge  
:(
    Опции темы
sergioK
Дата 16.12.2010, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



хотя это и не только для жавы,
перерыл гугль с описанием этого патерна, прием давно известный в качестве параметра принимаеться объест , 
потом вызываються методы в главном объекте, обычный wrapper. Лет 20 назад а то и 30 в MainFrame были callback функции,
и они вызывались из главной , в С были и есть поинтеры на функцию, ну сегодня все работают объектно ну и что? в чем это паттерн заключаеться?
в том он применяеться на уровне интерфейсов, так  интерфейс это и есть класс (чисто виртуальный) , только в жаве его по особому выделили ,

мое ощущение что теорию на голоv месте изобрели , причем непонятно зачем .


PM MAIL   Вверх
Stampede
Дата 17.12.2010, 01:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: нет
Всего: 144



sergioK, а кто говорит, что его вчера придумали? Главная заслуга Гаммы со товарищи (кстати, самой их книжке уже 15 лет) не в том, что они что-то придумали, а в систематизации большого объема программистских практик, подходов и решений, накопленного мировым софтверным сообществом за долгие годы разработки не самых тривиальных систем, сопровождавшихся набиванием шишек и наступанием на грабли — и все это с целью предостеречь от аналогичных шишек и граблей последующие поколения программистов. И если слово интерфейс звучит для вас сегодня буднично и естественно, то не забудьте сказать спасибо Гамме, а также Вирту, Страуструпу и другим чувакам, усилиями которых языки программирования прошли неблизкий путь от Фортрана и Алгола до сегодняшних OOP-языков с RAD-поддержкой и развитыми IDE.



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
Skipy
Дата 17.12.2010, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: нет
Всего: 16



Цитата(sergioK @ 16.12.2010,  19:07)
мое ощущение что теорию на голом месте изобрели, причем непонятно зачем .

Это не теория на голом месте. Это описание best practices. Ну, не всегда best, но это отдельный разговор. Как правильно заметил Stampede, Гамма сотоварищи просто систематизировали то, что уже применялось, причем часто задолго до них.

Что дает такая систематизация. Во-первых, пространство терминологии. Можно долго описывать человеку, что именно и как ему надо реализовать, а можно просто сказать - "напиши адаптер", "сделай синглтон", "используй стратегию". Всё, человек понимает, что ему надо сделать. Шаблоны в этом случае выступают в роли DSL, domain-specific языка высокого уровня.

И второе, для чего служат шаблоны - передача знаний о best practices. У многих такие знания формируются просто в результате опыта - я, например, когда читал книгу по шаблонам, с удивлением узнал, что половину из них я давно и успешно использую. Но опыт, как известно, сын ошибок. Я в свое время их сделал немало. Описание шаблона позволяет избежать большого количества ошибок.

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


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
sergioK
Дата 17.12.2010, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



А что делать когда один и тот же шаблон у разных людей называеться по разному?
У меня есть масса кода  где все эти шаблоны применяються немного по другому, так как 
определить это bridge, adapter wrapper, или давать им какие то другие названия, 
слышал не один раз что wrapper это decorator, Custom delegate, embedded , callback Interface.
Adapter часто называют Converter иногда интерпролятор, 
И где тут систематизация? всех на винград,ру слать   smile или 
к Гамме 

Это сообщение отредактировал(а) sergioK - 17.12.2010, 13:23
PM MAIL   Вверх
sergioK
Дата 17.12.2010, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Цитата(Stampede @ 17.12.2010,  01:46)
sergioK, И если слово интерфейс звучит для вас сегодня буднично и естественно, то не забудьте сказать спасибо Гамме, а также Вирту, Страуструпу и другим чувакам, усилиями которых языки программирования прошли неблизкий путь от Фортрана и Алгола до сегодняшних OOP-языков с RAD-поддержкой и развитыми IDE.

А Причем сдесь Вирт он же создатель структурного стиля, (без go to)
Ну а имя  Гранди Буч кому-нибудь что-то говорит,?
 читав его 10-11лет назад мне казалось чем то абстактным, далеким от реальности,
 прочитав его в сейчас вдруг понял , что 
фраза жава напрещает двойное наследование - это как минимум не точно,
а так же то что в С объектов не было, и многое другое ,

PM MAIL   Вверх
powerOn
Дата 17.12.2010, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 1
Всего: 159



Цитата(sergioK @  17.12.2010,  12:59 Найти цитируемый пост)
А что делать когда один и тот же шаблон у разных людей называеться по разному?


Тоже самое, если один человек называет букву "А" буквой "Б". Слать к азбуке. 

Цитата(sergioK @  17.12.2010,  13:32 Найти цитируемый пост)
у а имя  Гранди Буч кому-нибудь что-то говорит,?

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


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Старовъръ
Дата 17.12.2010, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 2
Всего: 10



Цитата
А что делать когда один и тот же шаблон у разных людей называеться по разному?
Это на самом деле большая проблема. Например, для кого-то Value Object - это почти то же, что и DTO, но Мартин Фаулер определил это название под другой шаблон; для кого-то существует только два вида Фабрик - Фабричный Метод и Абстрактная Фабрика, а кто-то вводит еще и Обычную Фабрику; где-то употребляют название Action, а где-то - Command; еще из проблемных названий - MVC & Model2 (MVC2), некоторые выделяют его в отдельный шаблон, другие продолжают все это называть просто MVC. Главное в таких ситуациях - знать все эти термины и, что они, порою, значат разные вещи. Затем нужно поделиться с окружающими своими знаниями и определить тот вариант, который вы будете использовать в своем окружении. 
Еще есть моменты, когда шаблоны ну очень похожи, так Proxy порой не отличим от Decorator'a. В таких ситуациях помогает а) Доскональное знание шаблонов; б) Не замарачиваться smile
Цитата
Ну а имя  Гранди Буч кому-нибудь что-то говорит?
Очень сложные и нудноватые книги, не советовал бы читать их новичкам. Если говорить все о тех же шаблонах, то в Head First Design Patterns все намного понятней, и читается быстрей.

Это сообщение отредактировал(а) Старовъръ - 17.12.2010, 23:08
PM MAIL WWW   Вверх
sergioK
Дата 18.12.2010, 02:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



[QUOTE=Старовъръ,17.12.2010,  23:03]
Цитата
 Главное в таких ситуациях - знать все эти термины и, что они, порою, значат разные вещи. Затем нужно поделиться с окружающими своими знаниями и определить тот вариант, который вы будете использовать в своем окружении. 
Еще есть моменты, когда шаблоны ну очень похожи, так Proxy порой не отличим от Decorator'a. В таких ситуациях помогает а) Доскональное знание шаблонов; б) Не замарачиваться smile
Цитата
Ну а имя  Гранди Буч кому-нибудь что-то говорит?
Очень сложные и нудноватые книги, не советовал бы читать их новичкам. Если говорить все о тех же шаблонах, то в Head First Design Patterns все намного понятней, и читается быстрей.

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

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

B,T.W.

у Буча всем известный патерн оbserver называеться acthor

Это сообщение отредактировал(а) sergioK - 18.12.2010, 04:57
PM MAIL   Вверх
Старовъръ
Дата 18.12.2010, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 2
Всего: 10



Цитата
Так может эффективнее обьяснить тот самый шаблон не называя его конкретно, ведь досконально все равно знать не будешь, или выучишь ,а через какое то время забудешь,
Нет, не эффективней, я привел только некоторый процент проблемных мест, а в общем же - все гладко. А доскональное знаниние шаблонов - это MUST, если хочешь стать профессионалом-инженером, а не обычным кодером, коих сонм.

Это сообщение отредактировал(а) Старовъръ - 18.12.2010, 10:51
PM MAIL WWW   Вверх
sergioK
Дата 18.12.2010, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Цитата(Старовъръ @ 18.12.2010,  10:51)
Цитата
Так может эффективнее обьяснить тот самый шаблон не называя его конкретно, ведь досконально все равно знать не будешь, или выучишь ,а через какое то время забудешь,
Нет, не эффективней, я привел только некоторый процент проблемных мест, а в общем же - все гладко. А доскональное знаниние шаблонов - это MUST, если хочешь стать профессионалом-инженером, а не обычным кодером, коих сонм.


Не согласен доскональное знаниние шаблонов это и есть кодировка, ну вызубрил и дальше ?? профессионал умеет увидеть нужный шаблон в нужный момент,
это уже скорее искуство ,
только работодатели не всегда это понимают 
IMHO

Это сообщение отредактировал(а) sergioK - 18.12.2010, 21:04
PM MAIL   Вверх
Старовъръ
Дата 18.12.2010, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 2
Всего: 10



Что значит вызубрил? В моем понимании доскональное знание - это умение применять в разных ситуациях разные вариации шаблонов, отличать их от других шаблонов и уметь довести до ума коллег почему он уместен в том или ином случае.
Без знания шаблонов ты будешь 10 лет бить себе голову, как и сказал Skipy, а потом придешь к тому же, что другие за год смогли освоить, ознакомившись предварительно с шаблонами.
PM MAIL WWW   Вверх
lazycat
Дата 19.12.2010, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 15.7.2007

Репутация: нет
Всего: 1



Кстати, насчет зубрежки шаблонов. Видел новичков, которые говорили себе: не буду браться за практические задачи, пока не изучу досконально теорию (design patterns в том числе). Они так и оставались новичками. IMHO - сделать неоптимальный проект с наивными решениями - это неизбежная ступенька на пути к мастерству. Design patterns, как впрочем, и другие подходы лучше всего воспринимаются уж после того, как набил себе шишку, ломясь в открытую дверь, или потерял кучу времени, чтобы придумать то, что давно всем известно. Помню в свое время начал более или менее понимать объектный подход только тогда, когда пару раз код стал неуправляемым.

PM MAIL   Вверх
sergioK
Дата 19.12.2010, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Цитата
 Я еще несколько лет назад читал нашим разработчикам лекцию об архитектурном развязывании слоев приложения. Сам это весьма неплохо умею делать. И только при написании статьи о модульном дизайне я вычитал правильное название - dependency inversion. 


архитектурном развязывании слоев приложения ?
А это что за зверь ? 

 очем там лекцию читать  smile , всем понятно что ящики отдельно , помидоры отдельно, 
 вот и весь  модульный дизайн,  

 Фильм про ментов помнишь ? Когда капитан Дукалис выходит после комиссии, его Ларин спрашивает ,
 "Толян чего такой грусный, не здал что-ли ? " . На что тот отвечает "Какая разница сколько ствол весит ,если стрелять не умееешь? "

  

Это сообщение отредактировал(а) sergioK - 20.12.2010, 16:19
PM MAIL   Вверх
Skipy
Дата 20.12.2010, 11:33 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: нет
Всего: 16



Цитата(Старовъръ @ 18.12.2010,  10:51)
А доскональное знаниние шаблонов - это MUST, если хочешь стать профессионалом-инженером, а не обычным кодером, коих сонм.

Никоим образом одно с другим не связано. Я даже больше скажу - это совсем необязательно. Шаблон является усредненным решением усредненной задачи. При наличии хорошего мышления то же самое решение, но уже оптимизированное под конкретный случай, можно реализовать и не зная шаблонов. И оно будет более оптимальным чем то, что предлагает шаблон.

Для того, чтобы быть профессионалом - надо знать принципы, на которых основаны шаблоны. А знание шаблонов не даст знания принципов.

P.S. Я еще несколько лет назад читал нашим разработчикам лекцию об архитектурном развязывании слоев приложения. Сам это весьма неплохо умею делать. И только при написании статьи о модульном дизайне я вычитал правильное название - dependency inversion. 

P.P.S. А если меня спросить о шаблонах стандартной Java - я всех даже не назову, не то, что досконального описания не дам. И что? Это мне не позволяет их всех применять?

P.P.P.S. Был у меня разработчик. Он шаблоны знал очень хорошо. Вот только его код понять было невозможно - за деревьями леса не было видно. Почему? Да потому, что мышлением он не отличался. И применял шаблоны "в лоб", по книжке.

И напоследок. Почитайте вот это: http://russian.joelonsoftware.com/Articles...eNakedChef.html. Очень хорошо написано, что такое шаблоны и для чего они нужны. И для кого они нужны.

Это сообщение отредактировал(а) Skipy - 20.12.2010, 11:35


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
nc30
Дата 20.12.2010, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Интересующийся :)
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 24.6.2010
Где: Санкт-Петербург

Репутация: нет
Всего: 8



Цитата(Skipy @ 20.12.2010,  11:33)
И напоследок. Почитайте вот это: http://russian.joelonsoftware.com/Articles...eNakedChef.html. Очень хорошо написано, что такое шаблоны и для чего они нужны. И для кого они нужны.

Хорошая статья. Спасибо.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Design, Quality, Testing | Следующая тема »


 




[ Время генерации скрипта: 0.3703 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.