SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
PATRONES DE DISEÑO 
Singleton 
(Instancia única)
¿Que es? 
- Patrón para garantizar la obtención de una única instancia 
de una clase. 
! 
-Existe el estricto y el compartido. 
! 
-Da un punto de acceso global a la misma. 
! 
-La clase es la responsable de su propia inicialización. 
! 
!
Singleton 
+(IACStateConnectionManager *)sharedInstance{ 
static IACStateConnectionManager *_sharedInstance = nil; 
static dispatch_once_t oncePredicate; 
dispatch_once(&oncePredicate, ^{ 
_sharedInstance = [[IACStateConnectionManager alloc] init]; 
}); 
return _sharedInstance; 
}
¿Cuando usarlo? 
Cuando necesitamos acceso a un recurso único o 
limitado. 
! 
Ejemplos; 
- Una clase para manejar conexiones de red. 
- Una clase para escribir logs. 
- Una clase que provee de configuraciones 
necesarias a lo largo de todo el ciclo de una app.
PROS 
- Es la manera más segura de controlar que solo se cree 
una instancia. 
- Sencilla implementación. 
CONTRAS 
- Posible perdida de rendimiento a causa de la 
sincronización. 
- Vulnera el principio de responsabilidad única. 
- Es una mentira. 
- Oculta dependencias, difícil de testear.

Más contenido relacionado

La actualidad más candente (7)

JAVA
JAVAJAVA
JAVA
 
Semana 1 Introducción a Java
Semana 1   Introducción a JavaSemana 1   Introducción a Java
Semana 1 Introducción a Java
 
Presentación Seminario1 EA
Presentación Seminario1 EAPresentación Seminario1 EA
Presentación Seminario1 EA
 
React
ReactReact
React
 
Serializacion
SerializacionSerializacion
Serializacion
 
Presentacion Spring Roo Java Mania
Presentacion Spring Roo Java ManiaPresentacion Spring Roo Java Mania
Presentacion Spring Roo Java Mania
 
Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworks
 

Destacado

Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Softwarefeliramirez5
 
Ingenieria del software
Ingenieria del softwareIngenieria del software
Ingenieria del softwarefeliramirez5
 
Patron de diseño iterator
Patron de diseño iteratorPatron de diseño iterator
Patron de diseño iteratorDaniel Santillan
 
Design Patterns / Patrones de Diseño
Design Patterns / Patrones de DiseñoDesign Patterns / Patrones de Diseño
Design Patterns / Patrones de DiseñoAutentia
 
Presentación open closed principle
Presentación open closed principlePresentación open closed principle
Presentación open closed principleAutentia
 
Patrón Façade
Patrón FaçadePatrón Façade
Patrón FaçadeAutentia
 
Patrón Decorator
Patrón DecoratorPatrón Decorator
Patrón DecoratorAutentia
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructuralesAutentia
 
Measuring code quality:WTF/min by @dgomezg
Measuring code quality:WTF/min by @dgomezgMeasuring code quality:WTF/min by @dgomezg
Measuring code quality:WTF/min by @dgomezgAutentia
 
Patrón Observer
Patrón ObserverPatrón Observer
Patrón ObserverAutentia
 
Nativescript
NativescriptNativescript
NativescriptAutentia
 
Factory method
Factory methodFactory method
Factory methodAutentia
 
Patrones de creación
Patrones de creaciónPatrones de creación
Patrones de creaciónAutentia
 
Patrones de diseño: Polimorfismo
Patrones de diseño: PolimorfismoPatrones de diseño: Polimorfismo
Patrones de diseño: PolimorfismoAutentia
 
Fundamentos de la arquitectura del software
Fundamentos de la arquitectura del softwareFundamentos de la arquitectura del software
Fundamentos de la arquitectura del softwareEnder Christense
 
Singleton design pattern
Singleton design patternSingleton design pattern
Singleton design pattern11prasoon
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de softwareIker Canarias
 

Destacado (20)

Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Ingenieria del software
Ingenieria del softwareIngenieria del software
Ingenieria del software
 
Patron de diseño iterator
Patron de diseño iteratorPatron de diseño iterator
Patron de diseño iterator
 
Design Patterns / Patrones de Diseño
Design Patterns / Patrones de DiseñoDesign Patterns / Patrones de Diseño
Design Patterns / Patrones de Diseño
 
Presentación open closed principle
Presentación open closed principlePresentación open closed principle
Presentación open closed principle
 
Patrón Façade
Patrón FaçadePatrón Façade
Patrón Façade
 
Patrón Decorator
Patrón DecoratorPatrón Decorator
Patrón Decorator
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Measuring code quality:WTF/min by @dgomezg
Measuring code quality:WTF/min by @dgomezgMeasuring code quality:WTF/min by @dgomezg
Measuring code quality:WTF/min by @dgomezg
 
Patrón Observer
Patrón ObserverPatrón Observer
Patrón Observer
 
Patrones Creacionales
Patrones CreacionalesPatrones Creacionales
Patrones Creacionales
 
Nativescript
NativescriptNativescript
Nativescript
 
Factory method
Factory methodFactory method
Factory method
 
Patrones de creación
Patrones de creaciónPatrones de creación
Patrones de creación
 
Patrones de diseño: Polimorfismo
Patrones de diseño: PolimorfismoPatrones de diseño: Polimorfismo
Patrones de diseño: Polimorfismo
 
Fundamentos de la arquitectura del software
Fundamentos de la arquitectura del softwareFundamentos de la arquitectura del software
Fundamentos de la arquitectura del software
 
Clase 07a patrones_diseno
Clase 07a patrones_disenoClase 07a patrones_diseno
Clase 07a patrones_diseno
 
Singleton design pattern
Singleton design patternSingleton design pattern
Singleton design pattern
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 

Similar a Singleton

Similar a Singleton (20)

Msdn Webcast InyeccióN De Dependencias Con Spring Framework
Msdn Webcast   InyeccióN De Dependencias Con Spring FrameworkMsdn Webcast   InyeccióN De Dependencias Con Spring Framework
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
 
Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
Transparencias_Patrones.ppt
Transparencias_Patrones.pptTransparencias_Patrones.ppt
Transparencias_Patrones.ppt
 
5 formas de implementar el patrón Singleton en Java.pdf
5 formas de implementar el patrón Singleton en Java.pdf5 formas de implementar el patrón Singleton en Java.pdf
5 formas de implementar el patrón Singleton en Java.pdf
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 
SpringFramework Overview
SpringFramework OverviewSpringFramework Overview
SpringFramework Overview
 
Guia4 java
Guia4 javaGuia4 java
Guia4 java
 
Abstract Factory
Abstract FactoryAbstract Factory
Abstract Factory
 
Presentación rc 1
Presentación rc 1Presentación rc 1
Presentación rc 1
 
Gestor de Base de Datos
Gestor de Base de DatosGestor de Base de Datos
Gestor de Base de Datos
 
Taller de Simpletest - Drupal Day Valencia 2012
Taller de Simpletest - Drupal Day Valencia 2012Taller de Simpletest - Drupal Day Valencia 2012
Taller de Simpletest - Drupal Day Valencia 2012
 
Abstract Factory
Abstract FactoryAbstract Factory
Abstract Factory
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Acciones de jsp
Acciones de jspAcciones de jsp
Acciones de jsp
 
Acciones de jsp
Acciones de jspAcciones de jsp
Acciones de jsp
 
Csharp
CsharpCsharp
Csharp
 

Último

Reunion 17 Hipodromo La Rinconada 050524.pdf
Reunion 17 Hipodromo La Rinconada 050524.pdfReunion 17 Hipodromo La Rinconada 050524.pdf
Reunion 17 Hipodromo La Rinconada 050524.pdfWinston1968
 
Reunion 16 Hipodromo La Rinconada 280424.pdf
Reunion 16 Hipodromo La Rinconada 280424.pdfReunion 16 Hipodromo La Rinconada 280424.pdf
Reunion 16 Hipodromo La Rinconada 280424.pdfWinston1968
 
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdf
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdfAgendadeportiva-Directv - 26 de abril al 3 de mayo.pdf
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdfeluniversocom
 
Habilidades Motrices Básicas de manera didáctica para niños
Habilidades Motrices Básicas de manera didáctica para niñosHabilidades Motrices Básicas de manera didáctica para niños
Habilidades Motrices Básicas de manera didáctica para niñosdamianpacheco01
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
Revista del Club A. Banfield - Abril 2024
Revista del Club A. Banfield - Abril 2024Revista del Club A. Banfield - Abril 2024
Revista del Club A. Banfield - Abril 2024LeonardoCedrn
 
Reunion 9 Hipodromo Nacional de Valencia 040524.pdf
Reunion 9 Hipodromo Nacional de Valencia 040524.pdfReunion 9 Hipodromo Nacional de Valencia 040524.pdf
Reunion 9 Hipodromo Nacional de Valencia 040524.pdfWinston1968
 

Último (7)

Reunion 17 Hipodromo La Rinconada 050524.pdf
Reunion 17 Hipodromo La Rinconada 050524.pdfReunion 17 Hipodromo La Rinconada 050524.pdf
Reunion 17 Hipodromo La Rinconada 050524.pdf
 
Reunion 16 Hipodromo La Rinconada 280424.pdf
Reunion 16 Hipodromo La Rinconada 280424.pdfReunion 16 Hipodromo La Rinconada 280424.pdf
Reunion 16 Hipodromo La Rinconada 280424.pdf
 
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdf
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdfAgendadeportiva-Directv - 26 de abril al 3 de mayo.pdf
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdf
 
Habilidades Motrices Básicas de manera didáctica para niños
Habilidades Motrices Básicas de manera didáctica para niñosHabilidades Motrices Básicas de manera didáctica para niños
Habilidades Motrices Básicas de manera didáctica para niños
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
Revista del Club A. Banfield - Abril 2024
Revista del Club A. Banfield - Abril 2024Revista del Club A. Banfield - Abril 2024
Revista del Club A. Banfield - Abril 2024
 
Reunion 9 Hipodromo Nacional de Valencia 040524.pdf
Reunion 9 Hipodromo Nacional de Valencia 040524.pdfReunion 9 Hipodromo Nacional de Valencia 040524.pdf
Reunion 9 Hipodromo Nacional de Valencia 040524.pdf
 

Singleton

  • 1. PATRONES DE DISEÑO Singleton (Instancia única)
  • 2. ¿Que es? - Patrón para garantizar la obtención de una única instancia de una clase. ! -Existe el estricto y el compartido. ! -Da un punto de acceso global a la misma. ! -La clase es la responsable de su propia inicialización. ! !
  • 3. Singleton +(IACStateConnectionManager *)sharedInstance{ static IACStateConnectionManager *_sharedInstance = nil; static dispatch_once_t oncePredicate; dispatch_once(&oncePredicate, ^{ _sharedInstance = [[IACStateConnectionManager alloc] init]; }); return _sharedInstance; }
  • 4. ¿Cuando usarlo? Cuando necesitamos acceso a un recurso único o limitado. ! Ejemplos; - Una clase para manejar conexiones de red. - Una clase para escribir logs. - Una clase que provee de configuraciones necesarias a lo largo de todo el ciclo de una app.
  • 5. PROS - Es la manera más segura de controlar que solo se cree una instancia. - Sencilla implementación. CONTRAS - Posible perdida de rendimiento a causa de la sincronización. - Vulnera el principio de responsabilidad única. - Es una mentira. - Oculta dependencias, difícil de testear.