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