Orientação a Obj
Boa noite pessoal, estou com a seguinte situação: tenho um objeto chamado
TEmpresaBO e dentro dele tenhu uma propriedade
o Construtor do objeto deveria ser assim:
Dessa forma temos o stackoverflow, qual seria a melhor maneira de tratar isso ?
TEmpresaBO e dentro dele tenhu uma propriedade
[TBusinessObject] [TJoinColumn(emppademp,Codigo)] [TColumn(emppademp, ftWideString, 3, False, Empresa Padrão, ,False)] property EmpresaPadrao : TEmpresaBO read GetEmpresaPadrao write SetEmpresaPadrao;
o Construtor do objeto deveria ser assim:
constructor TEmpresaBO.Create; begin Self.FEstado := TEstadoBO.Create; Self.FCep := TCepBO.Create; Self.FBairro := TBairroBO.Create; Self.FEmpresaPadrao := TEmpresaBO.Create end;
Dessa forma temos o stackoverflow, qual seria a melhor maneira de tratar isso ?
Leandro
Curtidas 0
Respostas
Marco Salles
04/06/2012
qual o objetivo desta propriedade ??
property EmpresaPadrao : TEmpresaBO read GetEmpresaPadrao write SetEmpresaPadrao
ela é a propria instancia .. è o proprio Objeto
se nçao desse StackOverflow imagine a situação
var
obj:TEmpresaBO;
begin
obj:=TEmpresaBO.crate;
ai teriamos
Obj = obj.EmpresaPadrao ????
property EmpresaPadrao : TEmpresaBO read GetEmpresaPadrao write SetEmpresaPadrao
ela é a propria instancia .. è o proprio Objeto
se nçao desse StackOverflow imagine a situação
var
obj:TEmpresaBO;
begin
obj:=TEmpresaBO.crate;
ai teriamos
Obj = obj.EmpresaPadrao ????
GOSTEI 0
Leandro
04/06/2012
a propriedade é do mesmo tipo do objeto sim...
é que no cadastro de empresa tenho uma empresa padrao de onde pode ser compartilhado os dados...
o property é do mesmo tipo da empresa isso nao quer dizer que é o objeto em si..
posso resolver a situação criando uma tabela de relacionamento...
EmpresaAtiva : TEmpresaBO
EmpresaPadrao : TEmpresaBO
mais nao queria ter que agir dessa forma... por que é algo comum no seu objeto voce ter uma propriedade dele mesmo...
é que no cadastro de empresa tenho uma empresa padrao de onde pode ser compartilhado os dados...
o property é do mesmo tipo da empresa isso nao quer dizer que é o objeto em si..
posso resolver a situação criando uma tabela de relacionamento...
EmpresaAtiva : TEmpresaBO
EmpresaPadrao : TEmpresaBO
mais nao queria ter que agir dessa forma... por que é algo comum no seu objeto voce ter uma propriedade dele mesmo...
GOSTEI 0
William
04/06/2012
Uma alternativa seria subrescrever o constructor, passando um parâmetro do tipo TEmpresaBO, ou seja, uma instância do próprio objeto, será que seria viável?
GOSTEI 0
Leandro
04/06/2012
Olá pessoal a forma que achei mais interessante foi criar um outro objeto TEmpresaPadraoBO, sem a propriedade de empresa.
acredito que seja uma das formas mais corretas.
abraço a todos.
acredito que seja uma das formas mais corretas.
abraço a todos.
GOSTEI 0
Marco Salles
04/06/2012
Vc tentou fazer omo o colega sugeriu ????
Uma alternativa seria subrescrever o constructor, passando um parâmetro do tipo TEmpresaBO, ou seja, uma instância do próprio objeto, será que seria viável?
GOSTEI 0
Leandro
04/06/2012
Não tentei, por que pelo que intendi ia ficar preso a mesma questão, pois esse objeto passado por parametro teria a propriedade empresa, logo teria o mesmo problema.
GOSTEI 0
Marco Salles
04/06/2012
Acho que não , pq ocontructor seria diferente
GOSTEI 0
Leandro
04/06/2012
É mais esse objeto diferente ia possuir uma outra propriedade Empresa chegando a um loop teste ai
que vais entender.
que vais entender.
GOSTEI 0
Marco Salles
04/06/2012
É mais esse objeto diferente ia possuir uma outra propriedade Empresa chegando a um loop teste ai
que vais entender.
que vais entender.
Mas ai que entra o singleton para permitir somente uma isntancia , para não ficar no Loop
GOSTEI 0
William
04/06/2012
Colega analisando novamente seu constructor, realmente minha idéia de sobreescrever o constructor não serve.
Uma segunda alternativa seria mudar de lugar essa atribuição da propriedade.
Uma segunda alternativa seria mudar de lugar essa atribuição da propriedade.
GOSTEI 0
Leandro
04/06/2012
Ate pensei em criar uma tabela pra relacao... mais da forma que fiz funcionou...
valeu.
valeu.
GOSTEI 0
Marco Salles
04/06/2012
Ate pensei em criar uma tabela pra relacao... mais da forma que fiz funcionou...
valeu.
valeu.
de fato , tentei utilizar com o overload do constructor e o Singleton mas tb não consegui . Apesar de não entender
a real necessidade , seria bom se vc colocasse a sua solução completa para servir de referencia a futuras dúvidas
similares
[]sds
GOSTEI 0