Pop

Patrones de diseño software 7. Patrón estructural Adapter

7. Patrón estructural  Adapter

  • Hola a todos.Seguimos con  nuestro  curso dedicado a los patrones de diseño software.Los patrones de diseño son unas técnicas para resolver problemas comunes en el desarrollo de software y otros ámbitos  referentes al diseño de interacción o interfaces.
  • En esta ocasión veremos el patrón de diseño  Adapter. Este patrón permite la cooperación entre clases para extender sus funcionalidades a clases de diferentes tipos, que no pueden usarlas por mecanismos comunes como la herencia. El patrón Adapter  permite establecer un puente entre la clase incompatible con el resto de las clases que quieren usar su funcionalidad,  adaptando dichas funcionalidades con este sistema.
    • En el siguiente  vídeo tenéis un ejemplo de este patrón de diseño.
    • Os dejo el código de las diferentes clases vistas en el vídeo:
      • Código de las clases Bombilla, BombillaClasica y BombillaModerna

    Bombilla:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace Adapter
    {
        abstract class  Bombilla
        {
            public abstract string encender();
            public abstract string aumentarIntensidad();
            public abstract  string apagar();
        }
    }

    BombillaClasica :
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace Adapter
    {
        class BombillaClasica:Bombilla
        {
            public override string encender()
            {
                return ("Encendido clásico");
            }
            public override string aumentarIntensidad()
            {
                return ("Aumentando intensidad clasico");
            }
            public override string apagar()
            {
                return ("Apagado clásico");
            }
        }
    }

    BombillaModerna:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace Adapter
    {
        class BombillaModerna:Bombilla
        {
            public override  string encender()
            {
                return ("Encendido moderno");
            }
            public override string aumentarIntensidad()
            {
                return ("Aumentando intensidad moderno");
            }
            public override string apagar()
            {
                return ("Apagado moderno");
            }
        }
    }
      • Código de las clases Vela y BombillaAdapter:
    Vela:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace Adapter
    {
        class Vela
        {
            public string PrenderFuego()
            {
                return ("Encendemos llama");
            }
            public string SoplarParaApagar()
            {
                return ("Soplamos para apagar");
            }
            public string EcharCCombustible()
            {
                return ("Echamos gasolina");
            }

        }
    }

    BombillaAdapter: 

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace Adapter
    {
        class BombillaAdapter: Bombilla
        {
            private Vela v = new Vela();
            public override string encender()
            {
                return v.PrenderFuego(); ;
            }
            public override string aumentarIntensidad()
            {
                return v.EcharCCombustible();
            }
            public override string apagar()
            {
                return v.SoplarParaApagar();
            }
        }
    }
      • Clase program:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace Adapter
    {
        class Program

        {
            static void Main(string[] args)
            {
                BombillaClasica bombilla = new BombillaClasica();
                Console.WriteLine(bombilla.encender());
                Console.WriteLine(bombilla.aumentarIntensidad());
                Console.WriteLine(bombilla.apagar());


                Console.ReadLine();

                BombillaModerna moderna = new BombillaModerna();
                Console.WriteLine(moderna.encender());
                Console.WriteLine(moderna.aumentarIntensidad());
                Console.WriteLine(moderna.apagar());

                Console.ReadLine();

                BombillaAdapter usarVela = new BombillaAdapter();
                Console.WriteLine(usarVela.encender());
                Console.WriteLine(usarVela.aumentarIntensidad());
                Console.WriteLine(usarVela.apagar());

                Console.ReadLine();
            }
        }




    }

    No hay comentarios:

    Publicar un comentario

    Curso .NET Core en C# - 34.Creamos nuestro propio log

    34.Creamos nuestro propio log Hola a todos. En este curso, analizaremos todos los conceptos básicos, intermedios y avanzados de  ASP.NET...