Program.cs
using Cursos.Modelos;
Instrutor instrutor1 = new Instrutor("Valter", "Full Stack");
ICurso curso1 = new CursoProgramacao("C# Web", instrutor1);
Instrutor instrutor2 = new Instrutor("Almeida", "Figma");
ICurso curso2 = new CursoDesign("Design de Interfaces Modernas", instrutor2);
Console.Clear();
curso1.ValidarConteudo();
curso1.PublicarCurso();
Console.WriteLine("");
curso2.ValidarConteudo();
curso2.PublicarCurso();
ICurso.cs
namespace Cursos.Modelos;
interface ICurso {
void ValidarConteudo();
void PublicarCurso();
}
Instrutor.cs
namespace Cursos.Modelos;
public class Instrutor {
public string? Nome {get;}
public string? Especialidade {get;}
public Instrutor(string? nome, string? especialidade) {
Nome = nome;
Especialidade = especialidade;
}
}
CursoProgramacao.cs
namespace Cursos.Modelos;
public class CursoProgramacao : ICurso {
public string? NomeCurso;
public Instrutor? Instrutor;
public CursoProgramacao(string? nomeCurso, Instrutor? instrutor) {
NomeCurso = nomeCurso;
Instrutor = instrutor;
}
public void PublicarCurso() {
Console.WriteLine($"Curso publicado com sucesso: {NomeCurso} - {Instrutor!.Nome} ({Instrutor.Especialidade})");
}
public void ValidarConteudo() {
Console.WriteLine($"Validando o conteúdo do curso de programação: {NomeCurso}");
}
}
CursoDesign.cs
namespace Cursos.Modelos;
public class CursoDesign : ICurso {
public string? NomeCurso;
public Instrutor? Instrutor;
public CursoDesign(string? nomeCurso, Instrutor? instrutor) {
NomeCurso = nomeCurso;
Instrutor = instrutor;
}
public void PublicarCurso() {
Console.WriteLine($"Curso publicado com sucesso: {NomeCurso} - {Instrutor!.Nome} ({Instrutor.Especialidade})");
}
public void ValidarConteudo() {
Console.WriteLine($"Validando o conteúdo do curso de design: {NomeCurso}");
}
}