SlideShare une entreprise Scribd logo
1  sur  14
Patrones de diseño con C# Ing. Matías Iacono Microsoft MVP Orador Regional Ineta Latam
Objetivos de la sesión Conocer prácticas de programación probadas. Recordar prácticas de programación probadas. Recorrer algunos de los patrones más usados.
¿Qué hago aquí? ¿ Cuanto se de Patrones de Diseño? La “F” de GoF no representa Four (4), sino Five (5). Yo fui el quinto Beattles. Detecto, comúnmente, patrones en el código que realizo, o trato de seguir ciertos lineamientos. Quiero sabe de que se trata, aunque escuché y leí algo alguna vez. Mami, tengo mucho miedo!!!
¿Qué es un patrón de diseño? Design Patterns—Elements of Reusable Software, by Gamma, Helm, Johnson, and Vlissides (1995). Solución común, elegante, probada para un problema específico.
No re inventar la rueda.
Patronesporenfoque (GoF).
Otrospatrones.
Patrón Singleton class Singleton     {         private static Singleton instance;         private static object syncLock = new object();         protected Singleton()         { }         public static Singleton GetInstance()         {             if (instance == null)             {                 lock (syncLock)                 {                     if (instance == null)                     {                         instance = new Singleton();                     }                 }             }             return instance;         }     }
Patrón Factory Method abstract class Creator     {         public void DoSomething()         {         }         public abstract SomeObject CreateSomething();     } class ConcreteCreator : Creator     {         public override SomeObject CreateSomething()         {             return new SomeObject();         }     }
Patrón Iterator abstract class Aggregate     {         public abstract Iterator CreateIterator();     }     // "ConcreteAggregate"      class ConcreteAggregate : Aggregate     {         private ArrayList items = new ArrayList();         public override Iterator CreateIterator()         {             return new ConcreteIterator(this);         }         // Property          public int Count         {             get { return items.Count; }         }         // Indexer          public object this[int index]         {             get { return items[index]; }             set { items.Insert(index, value); }         }     }     // "Iterator"
Otrospatrones
Conclusiones Patrones de diseño. Formas de encarar problemas con soluciones probadas. Muchos más patrones de los que creemos. ¡NO RE INVENTAR LA RUEDA!
Preguntas
Más información Patterns of Enterprise Application Architecture - Martin Fowler

Contenu connexe

Similaire à Patrones Con C#

Instituto tecnológico de tijuana
Instituto tecnológico de tijuanaInstituto tecnológico de tijuana
Instituto tecnológico de tijuana
javier
 
Unit Testing - GTUG
Unit Testing - GTUGUnit Testing - GTUG
Unit Testing - GTUG
Jordi Gerona
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
Alelt2890
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
Axel
 
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup
 

Similaire à Patrones Con C# (20)

Patrones de Diseño. (Design Patterns).pdf
Patrones de Diseño. (Design Patterns).pdfPatrones de Diseño. (Design Patterns).pdf
Patrones de Diseño. (Design Patterns).pdf
 
Instituto tecnológico de tijuana
Instituto tecnológico de tijuanaInstituto tecnológico de tijuana
Instituto tecnológico de tijuana
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytest
 
Transparencias_Patrones.ppt
Transparencias_Patrones.pptTransparencias_Patrones.ppt
Transparencias_Patrones.ppt
 
Introducción a Unit Testing y TDD
Introducción a Unit Testing y TDDIntroducción a Unit Testing y TDD
Introducción a Unit Testing y TDD
 
05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos
 
Taller 1 6
Taller 1 6Taller 1 6
Taller 1 6
 
Taller 1 6
Taller 1 6Taller 1 6
Taller 1 6
 
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casaTypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
 
06 patrones
06 patrones06 patrones
06 patrones
 
INTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptx
INTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptxINTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptx
INTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptx
 
Intro classes(1)
Intro classes(1)Intro classes(1)
Intro classes(1)
 
Test unitarios
Test unitariosTest unitarios
Test unitarios
 
Unit Testing - GTUG
Unit Testing - GTUGUnit Testing - GTUG
Unit Testing - GTUG
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Metodo constructor de una clase JAVA
Metodo constructor de una clase JAVAMetodo constructor de una clase JAVA
Metodo constructor de una clase JAVA
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataforma
 
Patrones diseno software
Patrones diseno softwarePatrones diseno software
Patrones diseno software
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
 
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
 

Plus de Matias Iacono

Plus de Matias Iacono (20)

NLP with NodeJS and JavaScript
NLP with NodeJS and JavaScriptNLP with NodeJS and JavaScript
NLP with NodeJS and JavaScript
 
A very quick walkthrough on Computer Vision
A very quick walkthrough on Computer VisionA very quick walkthrough on Computer Vision
A very quick walkthrough on Computer Vision
 
Google Media Pipe and Computer Vision
Google Media Pipe and Computer VisionGoogle Media Pipe and Computer Vision
Google Media Pipe and Computer Vision
 
Lo nuevo de C# 10
Lo nuevo de C# 10Lo nuevo de C# 10
Lo nuevo de C# 10
 
Computer Vision con OpenCV y Python
Computer Vision con OpenCV y PythonComputer Vision con OpenCV y Python
Computer Vision con OpenCV y Python
 
Malas prácticas de código
Malas prácticas de códigoMalas prácticas de código
Malas prácticas de código
 
Blazor - La nueva Web?
Blazor - La nueva Web?Blazor - La nueva Web?
Blazor - La nueva Web?
 
Un paseo por C# 9 (Preview)
Un paseo por C# 9 (Preview)Un paseo por C# 9 (Preview)
Un paseo por C# 9 (Preview)
 
Unit Test y TDD
Unit Test y TDDUnit Test y TDD
Unit Test y TDD
 
Gamificación: Aprendizaje a través del juego
Gamificación: Aprendizaje a través del juegoGamificación: Aprendizaje a través del juego
Gamificación: Aprendizaje a través del juego
 
Introducción a IoT
Introducción a IoTIntroducción a IoT
Introducción a IoT
 
Principios solid con c#
Principios solid con c#Principios solid con c#
Principios solid con c#
 
Global AI Tour 2020 - Perceptrón
Global AI Tour 2020 - PerceptrónGlobal AI Tour 2020 - Perceptrón
Global AI Tour 2020 - Perceptrón
 
Old code for code quality
Old code for code qualityOld code for code quality
Old code for code quality
 
Game development
Game developmentGame development
Game development
 
Game development on Blas Pascal University
Game development on Blas Pascal UniversityGame development on Blas Pascal University
Game development on Blas Pascal University
 
Agilidad y psicología
Agilidad y psicologíaAgilidad y psicología
Agilidad y psicología
 
Los principios de la gamificación en la agilidad
Los principios de la gamificación en la agilidadLos principios de la gamificación en la agilidad
Los principios de la gamificación en la agilidad
 
Webinar: Desarrollo de video juegos con HTML5 y JavaScript
Webinar: Desarrollo de video juegos con HTML5 y JavaScriptWebinar: Desarrollo de video juegos con HTML5 y JavaScript
Webinar: Desarrollo de video juegos con HTML5 y JavaScript
 
Paradigmas en educacion
Paradigmas en educacionParadigmas en educacion
Paradigmas en educacion
 

Dernier

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
NancyLoaa
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 

Dernier (20)

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 

Patrones Con C#

  • 1. Patrones de diseño con C# Ing. Matías Iacono Microsoft MVP Orador Regional Ineta Latam
  • 2. Objetivos de la sesión Conocer prácticas de programación probadas. Recordar prácticas de programación probadas. Recorrer algunos de los patrones más usados.
  • 3. ¿Qué hago aquí? ¿ Cuanto se de Patrones de Diseño? La “F” de GoF no representa Four (4), sino Five (5). Yo fui el quinto Beattles. Detecto, comúnmente, patrones en el código que realizo, o trato de seguir ciertos lineamientos. Quiero sabe de que se trata, aunque escuché y leí algo alguna vez. Mami, tengo mucho miedo!!!
  • 4. ¿Qué es un patrón de diseño? Design Patterns—Elements of Reusable Software, by Gamma, Helm, Johnson, and Vlissides (1995). Solución común, elegante, probada para un problema específico.
  • 5. No re inventar la rueda.
  • 8. Patrón Singleton class Singleton { private static Singleton instance; private static object syncLock = new object(); protected Singleton() { } public static Singleton GetInstance() { if (instance == null) { lock (syncLock) { if (instance == null) { instance = new Singleton(); } } } return instance; } }
  • 9. Patrón Factory Method abstract class Creator { public void DoSomething() { } public abstract SomeObject CreateSomething(); } class ConcreteCreator : Creator { public override SomeObject CreateSomething() { return new SomeObject(); } }
  • 10. Patrón Iterator abstract class Aggregate { public abstract Iterator CreateIterator(); } // "ConcreteAggregate" class ConcreteAggregate : Aggregate { private ArrayList items = new ArrayList(); public override Iterator CreateIterator() { return new ConcreteIterator(this); } // Property public int Count { get { return items.Count; } } // Indexer public object this[int index] { get { return items[index]; } set { items.Insert(index, value); } } } // "Iterator"
  • 12. Conclusiones Patrones de diseño. Formas de encarar problemas con soluciones probadas. Muchos más patrones de los que creemos. ¡NO RE INVENTAR LA RUEDA!
  • 14. Más información Patterns of Enterprise Application Architecture - Martin Fowler