Главная страница
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.06 c
15-1153114284
Ega23
2006-07-17 09:31
2006.08.13
С Днём рождения! 11-14 июля


15-1153145303
Pazitron_Brain
2006-07-17 18:08
2006.08.13
Подскажите, пожалуйста, конвертер


15-1152112654
Nizon
2006-07-05 19:17
2006.08.13
OpenGL or DirectX


3-1149675879
irena
2006-06-07 14:24
2006.08.13
MSSql: редактирование длинных полей varchar(1024)


4-1144918903
Sour Smile
2006-04-13 13:01
2006.08.13
Как узнать размеры разделов винчестеров?