Olá Kaiky.
Tudo bem?
Sim, é possível fazer isso em C#. Você pode usar um construtor privado na classe Cliente
para garantir que ela só possa ser instanciada a partir do método CriarCliente()
na classe Gerente
. Aqui está um exemplo de como você pode fazer isso:
public class Cliente
{
public string Nome { get; private set; }
public int Idade { get; private set; }
// Construtor privado
private Cliente(string nome, int idade)
{
Nome = nome;
Idade = idade;
}
// Método estático para criar instâncias de Cliente
public static Cliente CriarCliente(string nome, int idade)
{
return new Cliente(nome, idade);
}
}
public class Gerente
{
public Cliente CriarCliente(string nome, int idade)
{
return Cliente.CriarCliente(nome, idade);
}
}
Neste exemplo, a classe Cliente
tem um construtor privado, o que significa que ela não pode ser instanciada diretamente de fora da classe. Em vez disso, você usa o método CriarCliente
na classe Gerente
para criar instâncias de Cliente
.
Dessa forma, você garante que a criação de objetos Cliente
seja controlada pela classe Gerente
.
Seria isso? Entendi certo? Qualquer coisa manda aqui de novo.
Espero ter ajudado e bons estudos!