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

Вниз

Читерство в коде   Найти похожие ветки 

 
MeF Dei Corvi ©   (2006-07-20 03:37) [0]

Хочу спросить совета у мастеров. Оправдано ли использование "кривых хаков" в коде? Например, конструкторов с примерно таким поведением:

var MyObj: TMyObj;
...
constructor TMyObj.Create;
begin
 if(Assigned(MyObj)) then begin
   self.Free;
   self:=MyObj;
 end
 else begin
   //...
 end;
end;

Или всё же лучше изменить архитектуру, чтобы исключить подобный код?


 
Percent   (2006-07-20 03:40) [1]

Оправдано ли использование "кривых хаков" в коде?

А в чем тут кривость?

P.S. Вместо глобальной объектной ссылки лучше использовать локальную ссылочную константу.


 
Loginov Dmitry ©   (2006-07-20 07:49) [2]

Ну если код работает, с кодом больше никому не придется разбираться, программу никому не придется юзать - то ради бога. Оправдано.


 
Slym ©   (2006-07-20 08:14) [3]

Не проще так

function MyObj:TMyObj;
implementation
var FMyObj:TMyObj;

function MyObj:TMyObj;
begin
if not Assigned(FMyObj) then
  FMyObj:=TMyObj.Create;
result:=FMyObj;
end;


 
Lamer@fools.ua ©   (2006-07-20 08:50) [4]

>Оправдано ли использование "кривых хаков" в коде?

Хаков — бывает, что да.
Кривых — нет.


 
DiamondShark ©   (2006-07-20 08:52) [5]


> с примерно таким поведением:

А, если не секрет, какое "такое" поведение в этом коде ожидалось?


> Или всё же лучше изменить архитектуру, чтобы исключить подобный
> код?

;-)


 
Rouse_ ©   (2006-07-20 09:57) [6]

главное в деструкторе конструктор самого себя не поднимать - а остальное мошт и прокатить :)


 
Игорь Шевченко ©   (2006-07-20 11:04) [7]

"--   Человек   должен   быть  простым  и  ясным,--  сказал Домарощинер."
(с)


 
MeF Dei Corvi ©   (2006-07-20 13:40) [8]


> какое "такое" поведение в этом коде ожидалось?

В данном случае ожидается, что будет существовать всего один объект данного класса.


 
Юрий Зотов ©   (2006-07-20 14:10) [9]

> MeF Dei Corvi ©   (20.07.06 13:40) [8]

Тогда логичнее перекрывать NewInstance/FreeInstance, а не конструктор/деструктор.


 
Amoeba ©   (2006-07-20 15:15) [10]


> MeF Dei Corvi ©   (20.07.06 13:40) [8]
>
> > какое "такое" поведение в этом коде ожидалось?
>
> В данном случае ожидается, что будет существовать всего
> один объект данного класса.


Тогда может создавать класс на основе шаблона синглетон?
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=267


 
MeF Dei Corvi ©   (2006-07-20 15:22) [11]


> Тогда логичнее перекрывать NewInstance/FreeInstance

Да, пожалуй. Спасибо за подсказку :)
> Тогда может создавать класс на основе шаблона синглетон?

Ну вообще это и была попытка реализации синглетона на Delphi, но из-за поверхностных знаний языка у меня и возник такой корявый код :)



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

Форум: "Прочее";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.048 c
2-1153822140
Lkj
2006-07-25 14:09
2006.08.13
Дата и время


15-1153197800
Ega23
2006-07-18 08:43
2006.08.13
С Днём рождения! 18 июля


15-1151760863
Roast
2006-07-01 17:34
2006.08.13
Ищу работу программиста-стажера в Москве (Delphi)


3-1149738973
Soi
2006-06-08 07:56
2006.08.13
Экспорт данных из одной таблицы в другую


15-1152870960
ChainikDenis
2006-07-14 13:56
2006.08.13
Работа для програмиста в Москве





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский