1
resposta

Olá a todos. Fiz esse exemplo para o padrão Bridge. Gostaria de saber se está ok ???

  public interface IBridgeComponents
    {
        void Envia(string tipoMensagem);
    }

    public abstract class EnviaDados
    {
        public IBridgeComponents _iBridgeComponents { get; set; }
        public abstract void Envia();

    }

  public class EnviaPorEmail : EnviaDados
    {
        public override void Envia()
        {
            _iBridgeComponents.Envia("E-mail");
        }
    }

  public class EnviaPorSMS : EnviaDados
    {
        public override void Envia()
        {
            _iBridgeComponents.Envia("SMS");
        }
    }

  public class API : IBridgeComponents
    {
        public void Envia(string tipoMensagem)
        {
            Console.WriteLine("Enviando " + tipoMensagem + " usando uma API." );
        }
    }

  public class WebService : IBridgeComponents
    {
        public void Envia(string tipoMensagem)
        {
            Console.WriteLine("Enviando " + tipoMensagem + " usando WebService.");
        }
    }

  class Program
    {
        static void Main(string[] args)
        {

            // Usando o envio por e-mail

            EnviaDados enviaDado = new EnviaPorEmail();

            enviaDado._iBridgeComponents = new WebService();
            enviaDado.Envia();

            enviaDado._iBridgeComponents = new API();
            enviaDado.Envia();


            // Usando o envio por SMS
            enviaDado = new EnviaPorSMS();

            enviaDado._iBridgeComponents = new WebService();
            enviaDado.Envia();

            enviaDado._iBridgeComponents = new API();
            enviaDado.Envia();

        }
    }
1 resposta

Oi Mauricio tudo bom?

Não sei muito bem qual o contexto da aplicação desse pattern. Mas me parece bem semelhante ao da aula. Então acredito que esteja tudo Ok.

Entretanto, fique atento pois todo pattern possui um contexto no qual ele faz sentido. O contexto faz parte do pattern =)

Abraço!