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

Вниз

Функция как конструктор обекта. Как правильно?   Найти похожие ветки 

 
Simeon   (2003-09-24 18:31) [0]

Мне нужно создавать мой объект класса TMyObject через фабричный метод TMyFactory.BuildMyObject(). Я делаю примерно так:

TMyObject = class
property xxx : integer;
...
end;

TMyFactory = class
function BuildMyObject() : TMyObject;
...
end;

function TMyFactory.BuildMyObject() : TMyObject;
begin
Result := TMyObject.Create;
Result.xxx := 11;
end;

----
TMyController = class
procedure BuildTheObject();
end;

procedure TMyController.BuildTheObject();
var
MyFactory : TMyFactory;
MyObject : TMyObject;
begin
MyFactory := TMyFactory.Create;
MyObject := MyFactory.BuildMyObject();
MyFactory.Free;
end;

Не получиться ли при создании объекта через BuildMyObject() утечки памяти?


 
Skier ©   (2003-09-24 18:41) [1]


> Не получиться ли при создании объекта через BuildMyObject()
> утечки памяти?


в данном куске кода - получиться


 
Юрий Федоров ©   (2003-09-24 19:00) [2]

Если MyObject в последнем методе потом освобождается (то есть если код приведен в сокращении) - то все правильно


 
Simeon   (2003-09-24 19:04) [3]

да, конечно, MyObject.Free забыл дописать :-). Спасибо.


 
REA ©   (2003-09-24 23:24) [4]

А для чего вся эта экзотика? Это с COM как-то связано?


 
Erik   (2003-09-25 13:12) [5]

Я бы написал так, на всякий случай
TMyFactory = class
class function BuildMyObject() : TMyObject;



Страницы: 1 вся ветка

Текущий архив: 2003.10.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
6-18500
danatelo
2003-08-07 22:25
2003.10.06
Отправка почты


1-18371
Dens
2003-09-22 21:43
2003.10.06
Как добавить кнопки


6-18521
Lizard
2003-08-07 10:06
2003.10.06
Как сервером на удал-м. компе, передать инфу о файлах клиенту ?


14-18584
INTAARI
2003-09-18 11:41
2003.10.06
где скачать компонент RxTrayIcon из библиотеки RxLib


3-18224
Denizzz
2003-09-17 09:07
2003.10.06
Как правильно отловить выбранную ячейку в DBGrid