Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
1-18311
Пубертанец
2003-09-25 15:09
2003.10.06
Как уменьшить размер ЕХЕшника?


3-18230
MonsterKot
2003-09-16 07:47
2003.10.06
Такая вот загадка про DBGRID


1-18331
Jiura32d
2003-09-23 17:35
2003.10.06
Вопрос к профессионалам!!!


4-18689
antonyan
2003-08-01 13:54
2003.10.06
Сообщения Word


1-18475
3APA3A
2003-09-24 11:59
2003.10.06
проблема с ValueListEditor ом...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский