Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Faça como eu fiz: plataforma de cursos

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}");
    }
}
1 resposta
solução!

Oi, Diego. Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei da forma como você aplicou a interface ICurso pra padronizar os métodos ValidarConteudo() e PublicarCurso(), além de usar composição com a classe Instrutor nas classes de curso. Isso deixa o projeto mais organizado e mostra bem a diferença entre reaproveitar comportamentos com contrato e separar responsabilidades entre os objetos.

Você pode usar string.IsNullOrWhiteSpace() pra validar textos antes de publicar um curso.


string nomeCurso = "C# Web";

if (!string.IsNullOrWhiteSpace(nomeCurso))
{
    Console.WriteLine("curso valido para publicacao");
}

Esse código verifica se o nome do curso foi preenchido corretamente antes de seguir com a publicação.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!