Classe Program:
using PlataformaDeCursos;
Instrutor instrutor1 = new("Carla", "Back-end");
ICurso curso1 = new CursoProgramacao("C# com POO", instrutor1);
Instrutor instrutor2 = new("Felipe", "UI/UX");
ICurso curso2 = new CursoDesign("Design de Interfaces", instrutor2);
curso1.ValidarConteudo();
curso1.PublicarCurso();
curso2.ValidarConteudo();
curso2.PublicarCurso();
Interface ICurso:
namespace PlataformaDeCursos;
internal interface ICurso
{
void ValidarConteudo();
void PublicarCurso();
}
Classe Instrutor:
namespace PlataformaDeCursos;
internal class Instrutor(string nome, string especialidade)
{
public string Nome { get; private set; } = nome;
public string Especialidade { get; private set; } = especialidade;
}
Classe CursoProgramacao:
namespace PlataformaDeCursos;
internal class CursoProgramacao(string nome, Instrutor instrutor) : ICurso
{
public string Nome { get; private set; } = nome;
public Instrutor Instrutor { get; private set; } = instrutor;
public void ValidarConteudo()
{
Console.WriteLine($"Validando conteúdo do curso de programação: {Nome}");
}
public void PublicarCurso()
{
Console.WriteLine($"Curso publicado com sucesso: {Nome} - Instrutora: {Instrutor.Nome} ({Instrutor.Especialidade})");
}
}
Classe CursoDesign:
namespace PlataformaDeCursos;
internal class CursoDesign(string nome, Instrutor instrutor) : ICurso
{
public string Nome { get; private set; } = nome;
public Instrutor Instrutor { get; private set; } = instrutor;
public void ValidarConteudo()
{
Console.WriteLine($"Validando conteúdo do curso de design: {Nome}");
}
public void PublicarCurso()
{
Console.WriteLine($"Curso publicado com sucesso: {Nome} - Instrutora: {Instrutor.Nome} ({Instrutor.Especialidade})");
}
}