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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
15-1152956535
PSPF2003
2006-07-15 13:42
2006.08.13
Эмулятор ОС


2-1153899362
jeka_t
2006-07-26 11:36
2006.08.13
Как можно у TreeView показать разным шрифтом TreeNodes?


11-1131084045
Vladimir Kladov
2005-11-04 09:00
2006.08.13
Версия 2.20


4-1145594905
Alex_C
2006-04-21 08:48
2006.08.13
Как "пишать" через динамик?


15-1152966794
Кручен-Верчен
2006-07-15 16:33
2006.08.13
Переустановка WINDOWS.





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