Форум: "Начинающим";
Текущий архив: 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