![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
||
|
chipset |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Указатель по Александреско на его интерфейс, и?
Во-первых, это Котъ ![]() Во-вторых, просто не давать им линк. В-третьих, в моем понятии логгер-синглетон должен ловить эксепшны летящие со всего приложения, преобразовывать их в нормальный вид и логить. --------------------
|
||||||
|
|||||||
np9mi7 |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
![]()
![]()
Это сообщение отредактировал(а) np9mi7 - 3.4.2005, 09:51 |
||||||||
|
|||||||||
chipset |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Блин, я это говорил а Кот как раз за противоположную точку зрения ![]() Ну да ладно, не впервой. В общем принцип такой: те кто не должен - не должны получать линк.
Тут есть два принципа просто: 1) Каждый класс сам ловит свои исключения и вызывает логгера чтобы добавить туда иксепшн. 2) Глобальный логгер сам ловит исключения.
Нет. --------------------
|
||||||||
|
|||||||||
np9mi7 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
сама реализация обработчика будет использовать тот или иной ЛОГ, а клиент ловит ошибку и вызавает обр. и ничего незнает про ЛОГ. Как тебе это ![]() |
||||
|
|||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Ок, но мы ща про паттерны ![]() --------------------
|
||||
|
|||||
np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
![]() |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 3 Всего: 172 |
Вот нафлудили, чуть отошел - сразу про какой-то С++, ЛОГ...
![]() -------------------- |
|||
|
||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Спокойствие, только спокойствие© Карлсон. Усё под контролем. Что у нас осталось невыясненным насчёт синглетона? --------------------
|
||||
|
|||||
np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
НУ да ладно, как насчет статьи в FAQ? |
|||
|
||||
Fire-Plug |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 15.3.2005 Репутация: -1 Всего: 0 |
Это может на Яве принято копировать ссылки. Особенно удобно копировать их делать между объектами разных классов. Нахрена мне копировать ссылку? С какой целью? Первый вызов ф-ции Instance() создает объект и возвращает его ссылку или указатель. Все остальные вызовы Instance() получают ссылку или указатель на уже готовый объект. Ссылку можно скопировать в некоей локальной области видимости, где предполагается часто использовать объект, чтобы не вызывать Instance() многократно, но это дело вкуса, а не принципа. След. цитата раскрывает причины такого подхода:
А вот это уже х*рня!!!! Ты где таких архитектурных принципов нахватался? Мне чтобы весь тот bullshit разгребать, к-рый ты авторитетно на голову публики сыплешь, рабочей недели не хватит. Ты вообще похоже не врубаешься нахрена синглтон нужен. Например, класс реализующий сист. реестр, сист. часы и т.д. и т.п. Ты что, предлагаешь доступ, например, к объекту сист. реестра позволять в строго одном классе-клиенте и больше не моги? Или скажем DB-connection? Одному отдельно взятому классу синглтон и н*хер не нужен. Достаточно статического члена или статическим указателя-члена, чтобы последний экземпляр объекта-клиента удалил этот единственный эксемпляр. Кроме того, если некий класс нужен только какому-то одному классу, то этот первый класс можно вообще положить вместе с его объявлением в cpp-файл для класса-клиента и никакая другая зараза даже не узнает, что такой класс существует, т.к. он невидим для остального кода. "Создать объект обычным образом"- имелось в виду, например, на стеке в блоке: создал, тут же заюзал, а на выходе из блока он сам помер. Не нужна никакакая специальная техники вроде статического указателя, живущего для "мертвого" уже объекта до конца приложения . Этот мертвый указатель или что еще хуже статич. переменная класса - особенно при многократном использовании подобной "техники" - это и есть потеря ресурсов. --------------------
Объясни другому - поймешь сам (Народная примета) |
||||
|
|||||
chipset |
|
||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Добавлено @ 10:46
По вашему мнению, люди из GoF(откуда Кот взял код) полное ламо?
Мы не говорим про отдельно взятый класс, мы говорим про ссылку которую можно передавать и через медиатор, таким образом, линк получат только те кому он нужен. Логика в этом есть, хотя лично я и не согласен с таким проектированием. Это сообщение отредактировал(а) chipset - 3.4.2005, 10:48 --------------------
|
||||||||||
|
|||||||||||
Domestic Cat |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 3 Всего: 172 |
![]()
![]() ![]() ![]()
Вау! А двум значит нужен??? ![]() ![]()
Ха, а реюзабилити и модульность - для просто так штоль?
С какой стати он должен жить для "мертвого объекта"? Короче, уважаемый, еще раз в таком тоне позвольшь вести разговор - забаню. -------------------- |
||||||||||
|
|||||||||||
Fire-Plug |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 15.3.2005 Репутация: -1 Всего: 0 |
Кто сказал, что вызывать метод Instance() 2, 3,...,N раз есть "скорее всего" ошибка? Это что, GoF такой принцип вводит и на нем категорически настаивает? Уникальный объект создается однажды. Ссылки можно получать сколько угодно раз покуда нужно с помощью одной и той же ф-ции, к-рая кстати и реализует принцип глобальной точки доступа, а не скопированная кудо-то ссылка, к-рая сама по себе уж точно локальный объект в некоей области видимости.
Не следует путать божий дар с яичницей. А именно яичницу из разных классов, реализующих разные функциональные аспекты приложения с нек-рыми сервисами общего назначения для всего приложения. Именно такие сервисы в кач-ве примеров и приводит Александреску и именно к таким сервисам должен быть обеспечен глобальный доступ из любого места приложения. Именно это и есть архитектурный принцип синглтона, а всё остальные попытки ревизии или недопонимания - просто bullshit. --------------------
Объясни другому - поймешь сам (Народная примета) |
||||
|
|||||
Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 3 Всего: 172 |
Перечитай то, что написано на предыдущих страницах.
Поздравляю с открытием истинного "архитектурного принципа синглтона". ![]() ![]() ![]() -------------------- |
||||
|
|||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Говорят же.. Александреску не коммитет по стандартизации синглетонов. --------------------
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |