Giovanny Carvalho wrote:
> Bom dia a todos!
> 
> Estou querendo implementar o padrão singleton na minha classe de
> conexão com o banco de dados, mas estou meio (muito) perdido.
> 
> Atualmente estou instanciando o objeto como variável global, mas
> gostaria de melhorar!!!!
> 
> Alguém pode me ajudar?

Eu já usei singleton para essas coisas e, pelo fato do Object Pascal não 
ser uma linguagem puramente orientada a objetos, conclui que o melhor é 
uma variável global. Dependendo do caso faço uma implementação 
diferente, essa abaixo é a mais comum, usa carga sob demanda e não 
permite o usuário alterar o ponteiro do conector (e fazer lambança):

interface

function conector: tconector;

implementation

var
   _conector: tconector = nil;

function conector: tconector;
begin
   if not assigned(_conector) then
     _conector := tconector.create;
   result := _conector;
end;

finalization
   freeandnil(_conector);
end;

Joao Morais

Responder a