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