Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

[Projeto] Faça como eu fiz: plataforma de cursos

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})");
    }
}