Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо