Program.cs
using EmpresaTech.Modelos;
Funcionario tecnico = new Funcionario("Roger", "TI");
IServico s1 = new Manutencao("Criação da tela de usuários", tecnico);
Funcionario analista = new Funcionario("Marina", "Defesa Cibernética");
IServico s2 = new Consultoria("Planejamento da defesa", analista);
Console.Clear();
s1.ExecutarServico();
Console.WriteLine("");
s2.ExecutarServico();
IServico.cs
interface IServico {
void ExecutarServico();
}
Funcionario.cs
namespace EmpresaTech.Modelos;
internal class Funcionario : IServico {
public string? Nome {get;}
public string? Departamento {get;}
public Funcionario(string? nome, string? departamento) {
Nome = nome;
Departamento = departamento;
}
public void ExecutarServico() {}
}
Manutencao.cs
namespace EmpresaTech.Modelos;
internal class Manutencao : IServico {
public string? NomeServico;
public Funcionario? Funcionario;
public Manutencao(string? nomeServico, Funcionario? funcionario) {
NomeServico = nomeServico;
Funcionario = funcionario;
}
public void ExecutarServico() {
Console.WriteLine($"Executando serviço de manutenção: {NomeServico}");
Console.WriteLine($"Responsável: {Funcionario!.Nome} do(a) {Funcionario.Departamento}");
}
}
Consultoria.cs
namespace EmpresaTech.Modelos;
internal class Consultoria : IServico {
public string? NomeServico;
public Funcionario? Funcionario;
public Consultoria(string? nomeServico, Funcionario? funcionario) {
NomeServico = nomeServico;
Funcionario = funcionario;
}
public void ExecutarServico() {
Console.WriteLine($"Executando serviço de consultoria: {NomeServico}");
Console.WriteLine($"Responsável: {Funcionario!.Nome} do(a) {Funcionario.Departamento}");
}
}