Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Вниз

---|Ветка была без названия|---   Найти похожие ветки 

 
vuk   (2003-03-24 11:17) [120]

to Romkin:
>в конструкторе я ведь могу проверить переменную и выдать
>исключение, если уже есть объект
О! Тут-то собака и порылась! Если Вы возбуждаете исключение в конструкторе, то последствия, надеюсь, понятны - нужно ловить исключения, нужна глобальная общедорступная переменная или функция и т.п. А перекрытие NewInstance/FreeInstance дает простой способ - делается вызов конструктора, но возвращается всегда один и тот же объект. И никаких исключений.

>Плюс - все как от Борланд
Еще раз. Borland не делал синглетон из TPrinter, т.к. создать другие экземпляры можно.


 
REA   (2003-03-24 11:25) [121]

А я не понял в чем смысл этого "синглетона"? Есть глобальная переменная (хорошо бы еще только для чтения, или объект класса SystemObjects или WindowsObjects) и не надо ее трогать. Тут конечно может быть возражение, что не надо память засорять, пока оно не используется, но логичнее (наверно) выделять ресурсы при первом вызове.
Кстати на мое замечание, что Integer это generic тип не отреагировали - раньше он был короче, а позже будет длиннее.

>а). Что такое объекты ядра? Перечислите несколько функций, в которых они используются.
По памяти и не вспомню, что из них объекты ядра (File Handelrs, семафоры, мьютексы, пайпы, waitable timers, Atoms, Timer Queue? Много еще чего наверно.).
Хотя уж точно не GDI и не USER. А что - есть те кто все объекты ядра вспомнили? Надо еще уточнить, что OS=Windows.


 
vuk   (2003-03-24 11:32) [122]

to REA:
>А я не понял в чем смысл этого "синглетона"?
Никогда не сталкивались с ситуацией, когда у класса должен быть только один экземпляр, доступный во многих местах?


 
REA   (2003-03-24 11:40) [123]

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


 
vuk   (2003-03-24 11:46) [124]

to REA:
>Делал глобальную переменную.
Которая не защищена от доступа извне? Тогда реальной гарантии несоздания нескольких экземпляров нет.


 
Romkin   (2003-03-24 11:52) [125]

2vuk Application - что, тоже другие экземпляры кто-то делал?
Насчет исключения в конструкторе - просто программист должен знать, что он и где


 
vuk   (2003-03-24 12:00) [126]

to Romkin:
>Application - что, тоже другие экземпляры кто-то делал?
Но защита от дурака (точнее - от шибко умного) не помешала бы.

>просто программист должен знать, что он и где
А ему не все равно, позволяет класс создавать больше одного экземпляра или нет?


 
REA   (2003-03-24 12:03) [127]

>Которая не защищена от доступа извне?
По большому счету нет ничего защищенного, а защита просто от незнания внутреннего устройства объекта (маскировка того что переменная глобальная). С другой точки зрения, если не знать, что это синглетон, то можно делать ложные предположения о поведении объекта, что не менее опасно, чем иметь глобальную переменную (которая и описана в документации, как глобальная).


 
Alibaba   (2003-03-24 12:07) [128]

Ну Вы, блин, даете... :)


 
vuk   (2003-03-24 12:17) [129]

to REA:
>можно делать ложные предположения о поведении объекта, что не
>менее опасно, чем иметь глобальную переменную
Предположения, однако, не влияют на правильность работы синглетона, в отличие от наличия глобальной переменной.
А ложные предположения можно делать и в другом случае. Например, почему для создания экземпляра нужно не конструктор вызывать, а что-то другое? :o)


 
REA   (2003-03-24 13:13) [130]

Для создания именно "экземпляра", а не ссылки на экземпляр.
Потому что для вызова функции используются (), а не {} - потому что все так привыкли. Для получения ссылки логичнее использовать специализированную функцию: GetMyGlobalObjectReference, если уж не давать доступ по записи к переменной. А вообще можно было и в языке сделать ReadOnly модификатор переменной.


 
blackman   (2003-03-24 13:32) [131]

просто программист должен знать, что он и где и почем м зачем
Ну Вы, блин, даете... :)


 
vuk   (2003-03-24 13:49) [132]

to REA:
>Для создания именно "экземпляра", а не ссылки на экземпляр.
Понятия "создание ссылки на экземпляр" не существует. А конструктор, кстати, возвращает эту самую ссылку. Какая, скажите мне, клиенту разница, откуда она взялась? Он захотел экземпляр - он его получил.

Кстати, а почему экземпляр у Вас в кавычках?


 
REA   (2003-03-24 15:11) [133]

Вобщем дискуссия зашла в тупик и сильно отклонилась от топика :)
Предлагаю каждому остаться при своем мнении.



Страницы: 1 2 3 4 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.75 MB
Время: 0.014 c
7-30639
varfolomey
2003-02-16 11:20
2003.04.10
USB


14-30520
DuBan
2003-03-22 07:32
2003.04.10
Народ , не подскажете как сделать чтобы в меню Открыть с по...


14-30604
ass2
2003-03-25 06:06
2003.04.10
Немного о раскрутке программы и сайта


14-30558
asku
2003-03-24 15:40
2003.04.10
проги на delphi


8-30472
SergeyL
2003-01-09 16:33
2003.04.10
Контурная карта поверхности





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский