![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
class class
cc33 © (2006-11-11 16:41:00)
TMyClass = class
class procedure ...
end;
Зачем вообще могут понядобиться class - classoвые вызовы? Т.е. их смысл понятен -- их можно вызывать без предварительного создания класса. Но зачем такое может понядобиться? Если можно, приведите пример. Спасибо!
Германн (2006-11-12 02:40:00) [1]
> DrPass © (12.11.06 02:28) [7]
>
>
> > Германн © (12.11.06 02:23) [6]
>
> Это вопрос вида "как мне лучше расставить книжки, по цвету
> или по авторам". Если функция по смыслу относится к предметной
> области класса, то ей вполне можно быть членом этого класса
>
Спорить не собираюсь. Фл(уд)ейм не отрицаю, но и не стремлюсь. По тому как я прочитал [5] я и написАл [6].
DrPass (2006-11-12 02:28:00) [2]
> Германн © (12.11.06 02:23) [6]
Это вопрос вида "как мне лучше расставить книжки, по цвету или по авторам". Если функция по смыслу относится к предметной области класса, то ей вполне можно быть членом этого класса
Германн (2006-11-12 02:23:00) [3]
> DrPass © (12.11.06 00:30) [5]
>
>
> > Но зачем такое может понядобиться? Если можно, приведите
> > пример
>
> Пример раз:
> Допустим, у тебя есть класс с тысячей методов, который вычисляет
> трансцедентальность матрицы сознания студента-первокурсника.
> В этом классе есть функция умножения трех целых чисел,
> которую ты хочешь заюзать, при этом вычислять транцедентальность
> <skipped> тебе совсем незачем, равно как и создавать весь
> этот здоровенный объект. Делаешь ее класс-функцией, и пользуешь
> без создания объекта.
А просто функция "умножения трех целых чисел" не подойдёт? Вынесенная в отдельный модуль. Не привязанная ни к какому классу. Но "заюзанная" по необходимости в любом классе.
DrPass (2006-11-12 00:30:00) [4]
> Но зачем такое может понядобиться? Если можно, приведите
> пример
Пример раз:
Допустим, у тебя есть класс с тысячей методов, который вычисляет трансцедентальность матрицы сознания студента-первокурсника. В этом классе есть функция умножения трех целых чисел, которую ты хочешь заюзать, при этом вычислять транцедентальность <skipped> тебе совсем незачем, равно как и создавать весь этот здоровенный объект. Делаешь ее класс-функцией, и пользуешь без создания объекта.
Пример два:
Если ксть часто повторяющиеся операции - создал объект, чего-то с ним сделал, убил объект. Сделай это в класс-процедуре, и все будет красиво сводиться к одному-единственному вызову, без всяких Create/Free. И Великий Джа тебя встретит у границы познания
Ketmar (2006-11-12 00:00:00) [5]в генофонде есть примеры использования. %-)
Джо (2006-11-11 19:43:00) [6]> Если можно, приведите пример. Спасибо!
Классический пример — реализация шаблона (паттерна) "одиночка" (Singleton), классовый метод GetInstance.
Anatoly Podgoretsky (2006-11-11 16:54:00) [7]> cc33 (11.11.2006 16:41:00) [0]
Между прочим любой конструктор можно применять без создания объекта, но класс придется создавать, но это дизайнтайм.
Anatoly Podgoretsky (2006-11-11 16:53:00) [8]> cc33 (11.11.2006 16:41:00) [0]
Вот в этом смысле и используй