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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [опрос]Паттерны проектирования 
:(
    Опции темы
 
Используете ли вы паттерны проектирования в своих программах?
Да [ 20 ]  [43.48%]
Нет [ 8 ]  [17.39%]
Нет, но хочу [ 10 ]  [21.74%]
Что это? [ 8 ]  [17.39%]
Всего проголосовавших: 46
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
np9mi7
  Дата 31.3.2005, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

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



Цитата
В Java есть анонимные классы, синглтоны по определению, без каких-либо усилий.
, с++ нету...
Цитата
Паттерн - это форма организации классов, там нет жесткой структуры - сделай вот так и все.
, согласен, но появились ссылки на код можно и покритиковать.... smile чуть чуть

Это сообщение отредактировал(а) np9mi7 - 31.3.2005, 09:59


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
chipset
Дата 31.3.2005, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



Цитата(Fire @ 30.3.2005, 22:48)
Singleton * Singleton::_instance= 0;

Он же private? :\
_instance

Это сообщение отредактировал(а) chipset - 31.3.2005, 09:56


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Fire-Plug
Дата 31.3.2005, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(np9mi7 @ 31.3.2005, 09:38)
, посмотри на решение предложенное Domestic Cat, там толь конструктор не статичен...

А что, на Яве другое понятие(и реализация) статических методов, т.е. методов, не получающих указатель this, к-рые именно поэтому имеют доступ только к статическим членом класса?
Не хочу обидеть Domestic Cat, но "Кто в жизни не ошибался", - сказал ёжик слезая с кактуса.
Я лично смотрю на решение Мейерса, или Алесандреску, или Гаммы...
Добавлено @ 10:00
Цитата(chipset @ 31.3.2005, 09:56)
Он же private? :\

Канэшна, Владимир Ильич!
(Ответ Сталина на вопрос, сможет ли он для дела революции расстрелять 10 тыс. чел)
--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
chipset
Дата 31.3.2005, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



Цитата(Fire @ 30.3.2005, 22:57)

Канэшна, Владимир Ильич!
(Ответ Сталина на вопрос, сможет ли он для дела революции расстрелять 10 тыс. чел)

И как ты тогда получаешь к ним доступ? smile


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Domestic Cat
Дата 31.3.2005, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Цитата(Fire @ 31.3.2005, 00:57)
А что, на Яве другое понятие(и реализация) статических методов, т.е. методов, не получающих указатель this, к-рые именно поэтому имеют доступ только к статическим членом класса?
Не хочу обидеть Domestic Cat, но "Кто в жизни не ошибался", - сказал ёжик слезая с кактуса.

Эээ.. а можно пояснить, чем статик не устраивает и в чем ошибка?


--------------------

PM   Вверх
chipset
Дата 31.3.2005, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



Цитата(Domestic @ 30.3.2005, 23:06)
Эээ.. а можно пояснить, чем статик не устраивает и в чем ошибка?

Ну ты не получаешь указателя this когда используешь static функции, т.е. не можешь иметь доступ к нестатическим членам.

Это сообщение отредактировал(а) chipset - 31.3.2005, 10:14


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Domestic Cat
Дата 31.3.2005, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Цитата(chipset @ 31.3.2005, 01:09)
Ну ты не получаешь указателя this кода используешь static указатели...

А на кой он мне сдался, если у меня есть ссылка на объект?


--------------------

PM   Вверх
Fire-Plug
Дата 31.3.2005, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(chipset @ 31.3.2005, 10:03)
И как ты тогда получаешь к ним доступ?

Код

Singleton::Instance()->Foo(); // Foo() - пора бы уже эту ф-цию сделать компилер-генерируемую по умолчанию :D  


Цитата(Domestic @ 31.3.2005, 10:06)
Эээ.. а можно пояснить, чем статик не устраивает и в чем ошибка?

Речь шла в утверждении одного из апологетов решения о всех статических методах синглтона, кроме конструктора. Уместно напомнить известный афоризм, что если такая программа заработает с первого раза, это значит, что программист не понял задания.
Для класса со всеми статическими методами и соответственно членами есть свое определение - монотип.
Я иногда использую монотип-классы, в роли хэлперов, когда нужна голая функциональность, и не хочется вводить namespace.
В общем случае, класс со множеством статических функций - неудобен и потому не нужен.
Синглтону нужно всего 2 статических метода, а для синглтона Мэйерса - только один.
--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
Domestic Cat
Дата 31.3.2005, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Цитата(Fire @ 31.3.2005, 01:32)
Речь шла в утверждении одного из апологетов решения о всех статических методах синглтона, кроме конструктора.

Впервые слышу, по крайней мере я тут такого не упоминал. В коде я привел только методы, относящиеся собственно к тому, как создать синглтон; все остальные методы не могут быть статичными, иначе их можно было бы вызывать сколько угодно, вообще не создавая объектов.


--------------------

PM   Вверх
Fire-Plug
Дата 31.3.2005, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(chipset @ 31.3.2005, 09:56)
Цитата (Fire-Plug @ 30.3.2005, 22:48)
Singleton * Singleton::_instance= 0;


Он же private? :\
_instance

chipset, дико извиняюсь, только сейчас понял весь вопрос.
Ну ведь это уже классика С++ - объявление статического члена класса!
Статический член должен быть объявлен и инициализирован как глобальная переменная!
Цитата
Static data members must be initialized at file scope, even if private. (© MSDN)

Добавлено @ 10:51
Цитата(np9mi7 @ 31.3.2005, 09:38)
, посмотри на решение предложенное Domestic Cat, там толь конструктор
не статичен...


Цитата(Domestic @ 31.3.2005, 10:39)
Впервые слышу, по крайней мере я тут такого не упоминал

Уместны сразу несколько аналогий:
1) Ответ Иешуа Га-Ноцри Понтию Пилату по поводу искажения смысла проповедей его последователями.
2) "Речи тов. Брежнева нужно не только слушать, но и читать. Вместо "сосиски сраные" было сказано "социалистические страны"".
--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
chipset
Дата 31.3.2005, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



Цитата(Fire @ 30.3.2005, 23:44)
Уместны сразу несколько аналогий:

Domestic Cat имел ввиду методы связанные с управлением синглетона, а ты про все говорил.

Это сообщение отредактировал(а) chipset - 31.3.2005, 11:01


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Hroft
Дата 31.3.2005, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как-то странно поставлен вопрос изначальный. "Используете ли вы паттерны". А как их можно не использовать? До того, как я вообще узнал о книже Design Patterns, имея всего пару лет не слишком интенсивной программистской практики, я уже использовал некоторые. Фасад, например. Паттерны - это всего лишь идеи, наиболее важные и полезные. Они не имеют никакого отношения непосредственно к программированию, тем более к конкретным языкам. Даже в повседневной жизни мы все применяем некоторые из них.
PM MAIL ICQ   Вверх
chipset
Дата 31.3.2005, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



Hroft, я вот не использовал.. smile
Я вообще-то имел ввиду архитектурную часть, т.е. пишешь ли ты в проектной документации: так и так, это будет синглетоном, а это будет фабрикой.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Hroft
Дата 31.3.2005, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну тогда я тоже не использовал smile.
И, сдается мне, не все проголосовавшие использовали в таком контексте.
PM MAIL ICQ   Вверх
Fire-Plug
Дата 31.3.2005, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(chipset @ 31.3.2005, 11:16)
Я вообще-то имел ввиду архитектурную часть, т.е. пишешь ли ты в проектной документации:


Цитата(Hroft @ 31.3.2005, 11:20)
И, сдается мне, не все проголосовавшие использовали в таком контексте


Придется напомнить изначальную формулировку вопроса:
Цитата
Используете ли вы паттерны проектирования в своих программах?


И снова уместна ещё одна аналогия:
- Говоря "сволочь усатая", вы кого конкретно имели в виду, тов. Жюков?
- Гитлера, тов. Сталин!
- А вы кого конкретно имели в виду, тов. Берия?
--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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