Академический Документы
Профессиональный Документы
Культура Документы
Voc pode implementar dezenas de Construtores para uma nica Classe, porm apenas um deles dever ser o Primrio enquanto os demais
devero ser apenas Secundrios.
Todos os construtores Secundrios devero fazer uma chamada ao construtor Primrio.
O construtor Primrio, na maioria das vezes, sempre ser aquele com mais parmetros.
Vamos a um exemplo.
type
TUser = class
private
FLogin: string;
FPassword: string;
public
constructor Create(const Login, Password: string);
constructor Create(const Login: string);
function Login: string;
function Password: string;
end;
implementation
constructor
begin
inherited
FLogin :=
FPassword
end;
Argumentos Default
A linguagem Pascal permite que funes e mtodos tenham argumentos default. O exemplo acima poderia ser reescrito com apenas 1
construtor, desse jeito:
constructor Create(const Login, Password: string = '123456');
O primeiro motivo que no podemos nomear os argumentos. Quando temos mais de um argumento default, essa vantagem de escrever
menos no faz muito sentido.
O segundo motivo que eu prefiro gerar os valores default em runtime. Se eu quisesse gerar uma senha aleatria, por exemplo, bastaria criar
um mtodo RandomPassword e cham-lo no construtor secundrio, ou seja, a implementao do construtor Secundrio poderia ser reescrita
assim:
constructor TUser.Create(const Login: string);
begin
Create(Login, RandomPassword);
end;
Assim a implementao de suas Classes ficam ainda mais simples, pois teriam apenas 1 construtor onde todos os argumentos so
inicializados.
E voc, como implementa seus construtores?