Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.076 c
15-1163255455
homm
2006-11-11 17:30
2006.12.03
WWW: Оцените пожалуйста проект


2-1163438646
_Ruslan_
2006-11-13 20:24
2006.12.03
Вызов нескольких копий формы из DLL и передача информации из DLL


15-1163580118
KilkennyCat
2006-11-15 11:41
2006.12.03
Что Вы наиболее часто используете и для каких целей?


2-1163846665
Youngkoder
2006-11-18 13:44
2006.12.03
TStrings


15-1163276275
ZeroDivide
2006-11-11 23:17
2006.12.03
Масштабирование LCD-монитора как отключить?