0
respostas

Valores diferentes para a classe Orçamento

No exemplo a classe Orcamento tem o mesmo valor para todos os impostos. E se minha classe de negócio fosse outra ao invés de Orçamento com o conteúdo variando de acordo com cada classe que implementa a interface?

Exemplo:

public class ResultadoExame
{
        public string Resultado { get; }

        public ResultadoExame(string resultado)
        {
                Resultado = resultado;
        }
}
public interface IExame
{
        void Visualizar(ResultadoExame resultadoExame);
}
public class Holter : IExame
{
        public void Visualizar(ResultadoExame resultadoExame)
        {
                Console.WriteLine("Resultado Holter: " + resultadoExame.Resultado);
        }
}
public class Mapa : IExame
{
        public void Visualizar(ResultadoExame resultadoExame)
        {
                Console.WriteLine("Resultado MAPA: " + resultadoExame.Resultado);
        }
}
public voic VisualizadorDeResultados
{
        public void VisualizarResultado(ResultadoExame resultadoExame, IExame exame)
        {
                exame.Visualizar(resultadoExame);
        }
}
public class Program
{
        public static void Main(string[] args)
        {
                VisualizadorDeResultados visualizador = new VisualizadorDeResultados();

                IExame holter = new Holter();
                IExame mapa = new Mapa();

                // UM VALOR PARA O RESULTADO DO EXAME HOLTER
                ResultadoExame resultadoHolter = new ResultadoExame("Exame normal");

                visualizadorDeResultados.VisualizarResultado(resultadoHolter, holter);

                // OUTRO VALOR PARA O RESULTADO DO EXAME MAPA
                ResultadoExame resultadoMapa = new ResultadoExame("Exame deve ser repetido");

                visualizadorDeResultados.VisualizarResultado(resultadoMapa, mapa);
        }
}

A dúvida é se para valores diferentes para a classe de negócio ResultadoExame, o pattern Strategy ainda pode ser usado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software