Pop

Patrones de diseño software 12. Patrón comportamiento Strategy

12. Patrón comportamiento Strategy

  • 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 Strategy. El patrón Estrategia (Strategy) es un patrón de diseño para el desarrollo de software. Se clasifica como patrón de comportamiento porque determina cómo se debe  realizar el intercambio de mensajes entre diferentes objetos para resolver una tarea. El patrón Strategy permite mantener un conjunto de algoritmos de entre los cuales el objeto cliente puede elegir aquel que le conviene e intercambiarlo dinámicamente según sus necesidades.
  • El modelo de clases que utilizaremos para este ejemplo es el siguiente:

  • 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:
    •  Interface IConexion
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Strategy
{
    interface IConexion
    {
        string conectar();

        Boolean conexionEstablecida();
    }
}

    •  Clase GestionarConexiones.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Strategy
{
    class GestionarConexiones
    {
        private IConexion conexion;

        public void ConexionesOracle()
        {
            this.conexion = new Oracle();
        }

        public void ConexionesSQL()
        {
            this.conexion = new SQL();
        }

        public string conectar()
        {
          return  this.conexion.conectar();
        }

        public Boolean conexionCorrecta()
        {
            return this.conexion.conexionEstablecida();
        }
    }
}

    •  Clase Oracle.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Strategy
{
    class Oracle : IConexion
    {
        Boolean conexionCorrecta = false;

        public string conectar()
        {
            conexionCorrecta = true;
            return "Conectando con BBDD ORACLE";
        }

        public Boolean conexionEstablecida()
        {
            return conexionCorrecta;
        }
       
    }
}

    •  Clase SQL.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Strategy
{
    class SQL:IConexion
    {
        Boolean conexionCorrecta = false;

        public string conectar()
        {
            conexionCorrecta = false;
            return "Conectando con BBDD SQL";
        }

        public Boolean conexionEstablecida()
        {
            return conexionCorrecta;
        }
    }
}

    •  Clase Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Strategy
{
    class Program
    {
        static void Main(string[] args)
        {
            GestionarConexiones gesConex = new GestionarConexiones();
            gesConex.ConexionesOracle();
            Console.WriteLine(gesConex.conectar());

            if (!gesConex.conexionCorrecta())
            {
                gesConex.ConexionesSQL();
                Console.WriteLine(gesConex.conectar());
            }

            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...