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

Вниз

class class   Найти похожие ветки 

 
cc33   (2006-11-11 16:41) [0]

TMyClass = class
 class procedure ...
end;


Зачем вообще могут понядобиться class - classoвые вызовы? Т.е. их смысл понятен -- их можно вызывать без предварительного создания класса. Но зачем такое может понядобиться? Если можно, приведите пример. Спасибо!


 
Anatoly Podgoretsky ©   (2006-11-11 16:53) [1]

> cc33  (11.11.2006 16:41:00)  [0]

Вот в этом смысле и используй


 
Anatoly Podgoretsky ©   (2006-11-11 16:54) [2]

> cc33  (11.11.2006 16:41:00)  [0]

Между прочим любой конструктор можно применять без создания объекта, но класс придется создавать, но это дизайнтайм.


 
Джо ©   (2006-11-11 19:43) [3]

> Если можно, приведите пример. Спасибо!

Классический пример — реализация шаблона (паттерна) "одиночка" (Singleton), классовый метод GetInstance.


 
Ketmar ©   (2006-11-12 00:00) [4]

в генофонде есть примеры использования. %-)


 
DrPass ©   (2006-11-12 00:30) [5]


> Но зачем такое может понядобиться? Если можно, приведите
> пример

Пример раз:
Допустим, у тебя есть класс с тысячей методов, который вычисляет трансцедентальность матрицы сознания студента-первокурсника. В этом классе есть функция умножения трех целых чисел, которую ты хочешь заюзать, при этом вычислять транцедентальность <skipped> тебе совсем незачем, равно как и создавать весь этот здоровенный объект. Делаешь ее класс-функцией, и пользуешь без создания объекта.
Пример два:
Если ксть часто повторяющиеся операции - создал объект, чего-то с ним сделал, убил объект. Сделай это в класс-процедуре, и все будет красиво сводиться к одному-единственному вызову, без всяких Create/Free. И Великий Джа тебя встретит у границы познания


 
Германн ©   (2006-11-12 02:23) [6]


> DrPass ©   (12.11.06 00:30) [5]
>
>
> > Но зачем такое может понядобиться? Если можно, приведите
> > пример
>
> Пример раз:
> Допустим, у тебя есть класс с тысячей методов, который вычисляет
> трансцедентальность матрицы сознания студента-первокурсника.
>  В этом классе есть функция умножения трех целых чисел,
> которую ты хочешь заюзать, при этом вычислять транцедентальность
> <skipped> тебе совсем незачем, равно как и создавать весь
> этот здоровенный объект. Делаешь ее класс-функцией, и пользуешь
> без создания объекта.

А просто функция "умножения трех целых чисел" не подойдёт? Вынесенная в отдельный модуль. Не привязанная ни к какому классу. Но "заюзанная" по необходимости в любом классе.


 
DrPass ©   (2006-11-12 02:28) [7]


> Германн ©   (12.11.06 02:23) [6]

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


 
Германн ©   (2006-11-12 02:40) [8]


> DrPass ©   (12.11.06 02:28) [7]
>
>
> > Германн ©   (12.11.06 02:23) [6]
>
> Это вопрос вида "как мне лучше расставить книжки, по цвету
> или по авторам". Если функция по смыслу относится к предметной
> области класса, то ей вполне можно быть членом этого класса
>

Спорить не собираюсь. Фл(уд)ейм не отрицаю, но и не стремлюсь. По тому как я прочитал [5] я и написАл [6].



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

Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.042 c
15-1163586466
YOjik
2006-11-15 13:27
2006.12.03
Загадка


5-1144670521
james25
2006-04-10 16:02
2006.12.03
создание составных компонентов


15-1163339560
TStas
2006-11-12 16:52
2006.12.03
Как делаются живые курсоры?


15-1163068094
Vulix
2006-11-09 13:28
2006.12.03
Протокол Mail.Ru агента


15-1163302608
Gero
2006-11-12 06:36
2006.12.03
Все в игноре!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский