Patron Dediseño
Esta fue la primer pregunta que me hice cuando comencé a investigar sobre este tema. Al principio no tenía mucha idea de por dónde comenzar, por lo que mi primera reacción fue realizar una búsqueda en Internet y obtener de esta manera alguna base sobre la cual apoyarme. La definición que más me gustó fue la siguiente:
“Los patrones de diseño son el esqueleto de lassoluciones a problemas comunes en el desarrollo de software.”
En otras palabras, brindan una solución ya probada y documentada a problemas de desarrollo de software que están sujetos a contextos similares. Debemos tener presente los siguientes elementos de un patrón: su nombre, el problema (cuando aplicar un patrón), la solución (descripción abstracta del problema) y las consecuencias (costos ybeneficios).
Grande fue mi sorpresa al averiguar que existen varios patrones de diseño popularmente conocidos, los cuales se clasifican como se muestra a continuación:
* Patrones Creacionales: Inicialización y configuración de objetos.
* Patrones Estructurales: Separan la interfaz de la implementación. Se ocupan de cómo las clases y objetos se agrupan, para formar estructuras másgrandes.
* Patrones de Comportamiento: Más que describir objetos o clases, describen la comunicación entre ellos.
Veamos un poco en qué consisten los distintos tipos de patrones, cuáles son sus fines y qué beneficios nos aportan.
Principio de la página
Patrones Creacionales
Fábrica Abstracta ( Abstract Factory )
El problema a solucionar por este patrón es el de crear diferentes familiasde objetos, como por ejemplo la creación de interfaces gráficas de distintos tipos (ventana, menú, botón, etc.).
Método de Fabricación ( Factory Method )
Parte del principio de que las subclases determinan la clase a implementar.
public class ConcreteCreator extends Creator
{
protected Product FactoryMethod()
{ return new ConcreteProduct();
}
}
public interface Product{}
public class ConcreteProduct implements Product{}
public class Client
{
public static void main(String args[])
{ Creator UnCreator;
UnCreator = new ConcreteCreator();
UnCreator.AnOperations();
}
}
Prototipado ( Prototype )
Se basa en la clonación de ejemplares copiándolos de un prototipo.
Singleton
Restringe la instanciación de una clase o valor de un tipo a un solo objeto. public sealed class Singleton
{
private static volatile Singleton instance;
private static object syncRoot = new Object();
private Singleton()
{
System.Windows.Forms.MessageBox.Show("NuevoSingleton");
}
public static Singleton GetInstance
{
get
{
if (instance == null)
{
lock(syncRoot) {
if (instance == null)
instance = new Singleton();
}
}
return instance;
}...
Regístrate para leer el documento completo.