Главная страница
    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.06 c
2-1163406956
TrainerOfDolphins
2006-11-13 11:35
2006.12.03
Хранение настроек приложения в файле


15-1163715524
Adder
2006-11-17 01:18
2006.12.03
А я вот хочу кого-нибудь обидеть!


5-1144519995
Суслик
2006-04-08 22:13
2006.12.03
Регистрация своих расширений IDE


15-1163421348
Двоишник
2006-11-13 15:35
2006.12.03
Prolog


2-1163865992
AlexanderMS
2006-11-18 19:06
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский