Sigleton
Enviado por Gema...05 • 24 de Enero de 2014 • Tesis • 1.717 Palabras (7 Páginas) • 246 Visitas
Introducción
En el presente ensayo realizaremos un resumen con ejemplos sobre los patrones de diseño específicamente el patrón de diseño singleton, lo analizaremos con profundidad y de qué manera se lo puede utilizar.
Cuando nos referimos a los patrones de diseño lo describimos como una solución a un problema específico en el desarrollo del software, cabe recalcar que no cualquier conclusión sino aquella que se ha demostrado que son eficientes en diferentes escenarios y que sea reutilizable en la mismas.
El patrón de diseño singleton es uno de los más sencillo, conocido y utilizado referente a los patrones de diseño que existen, su propósito es asegurar que sólo exista una instancia en cada clase y proporciona un punto de acceso global a ella, la utilización en una clase es controlar el acceso a un recurso físico único o cuando hay datos que deben estar disponibles para todos los objetos de la aplicación
Objetivos
Objetivo General
Tener los conocimientos necesarios para desarrollar prácticas de programación aplicando el patrón de diseño singleton.
Objetivos Específicos
Conocer los diferentes patrones de diseño que existen en la actualidad.
Aprender a identificar el patrón de diseño singleton por medios de ejemplos.
Conocer las beneficios de utilizar el patrón de diseño singleton.
Definición
Patrón de diseño
Se refiere a una solución a los problemas en el diseño es decir está relacionado al desarrollo de software y de interacción e interfaces, antes de ser considerada una solución se debe de asegurar que la misma ha sido efectiva en la solución de problemas anteriores lo que quiere decir que tiene que ser reusable y que debe de solucionar diferentes problemas en diversas circunstancias, esto indica que los patrones de diseño tienen que responder con ciertas características.
Patrón de diseño singleton
El patrón singleton o también llamado solitario se usa para asegurarse de que exista sólo una instancia de una clase, se da un punto de acceso global para poder acceder a ésta instancia, pero debe garantizar que exista un solo objeto de dicha clase, utilizando cuando una clase controla el acceso a un recurso físico único o cuando hay datos que deben estar disponibles para todos los objetos de la aplicación.
¿Cómo funciona?
Su uso es simple, en el momento en que un proceso de nuestra aplicación realiza un primer llamado a un objeto, se crea una instancia de este. En llamadas posteriores se devolverá la misma instancia. De esta forma sólo se crea una instancia y se reutiliza en las siguientes llamadas.
Ventajas
Al crear una sola instancia de los objetos se evita tener en memoria una gran cantidad objetos, con lo cual se reduce el consumo de recursos. Además se puede mantener un mayor control sobre el número de objetos creados.
Ofrece una solución concreta a un problema, favoreciendo la reutilización de código y la comunicación entre los procesos de la aplicación.
Desventajas
Si se realizan múltiples peticiones simultáneamente, se pueden generar cuellos de botella, lo cual genera conflictos en nuestro sistema.
Probablemente al ser una solución implementada a la medida de un problema concreto no podrá ser implementado en problemas que requieran del mismo patrón.
Sin seguridad para subprocesos
Con seguridad simple para subprocesos
Consecuencias
El patrón singleton proporciona varios beneficios como son:
Acceso controlado a la única instancia.
Espacio de nombres reducido.
Permite refinamiento de operaciones y la representación.
Permite un número variable de instancias.
Más flexible que las operaciones de clases.
Características
Acceso controlado a una única instancia.- Debido a que la clase Singleton encapsula su única instancia, puede tener un adecuado control sobre cuando y como acceden los clientes a ella.
Nombre de espacio reducido.- El patrón Singleton es de una mejora con relación a las variables globales, evita el uso de variables globales que almacenen instancias únicas.
Permite mejorar las operaciones y su representación.- La clase singleton puede ser extendida utilizando subclases, y es fácil configurar una aplicación con una instancia de su clase extendida. Puedes configurar la aplicación con una instancia de la clase que necesitas en tiempo de ejecución.
Permite un número variable de instancias.- En caso que haya un cambio de perspectiva y se desee permitir un mayor número de instancias se puede utilizar la misma aproximación para controlar el número de instancias que la aplicación utilicé solo es necesario modificar la operación que concede el acceso.
Pasos a seguir para el diseño del patrón de diseño singleton
La propia clase es responsable de crear la única instancia.
Permite el acceso global a dicha instancia mediante un método de clase.
Declara el constructor de clase como privado para que no sea instanciable directamente.
Arquitectura del patrón singleton (conexión a base de datos)
Un ejemplo de implementación típico de este patrón son las conexiones a base de datos, no queremos que se creen diferentes conexiones si nuestro aplicativo se conecta a una única base de datos (No hay que confundir con abrir y cerrar la conexión). De la misma forma si se conectase a diferentes bases de datos, tendríamos un objeto de conexión único por cada conexión a base de datos.
namespace Singleton
{
class Program
{
static void Main(string[] args)
{
//Llamado de Conexión uno
Conection a = Conection.getSingleton();
...