Главная страница
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.49 MB
Время: 0.044 c
2-1153863154
ISO
2006-07-26 01:32
2006.08.13
Canvas


15-1153050877
novoalex
2006-07-16 15:54
2006.08.13
Ищю работу...


2-1153487778
bajenovv
2006-07-21 17:16
2006.08.13
кнопка


1-1151669893
IceBeerg
2006-06-30 16:18
2006.08.13
Как развернуть приложение из трея?


11-1131392864
Flea
2005-11-07 22:47
2006.08.13
проблема со вкладкой Tabcontrol