patrones con c#

14
1 Patrones de diseño con C# Ing. Matías Iacono Microsoft MVP Orador Regional Ineta Latam

Upload: matias-iacono

Post on 24-Apr-2015

11.168 views

Category:

Education


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Patrones Con C#

1

Patrones de diseño con C#

Ing. Matías IaconoMicrosoft MVPOrador Regional Ineta Latam

Page 2: Patrones Con C#

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.

Page 3: Patrones Con C#

¿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!!!

Page 4: Patrones Con C#

¿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.

Page 5: Patrones Con C#

5

No re inventar la rueda.

Page 6: Patrones Con C#

Patrones por enfoque (GoF).

Patrones Creacionales

•Abstract Factory•Builder•Factory Method•Prototype•Singleton

Patrones Estructurales

•Adapter•Bridge•Composite•Decorator•Facade•Flyweight•Proxy

Patrones de Comportamiento•Chain of Resposability•Command•Interpreter•Iterator•Mediator•Memento•Observer•State•Strategy•Template Method•Visitor

Page 7: Patrones Con C#

Otros patrones.Patrones Lógica

de Dominio

•Transaction Script•Domain Model•Table Module•Service Layer

Patrones Objeto-Relacionales de

Comportamiento

•Unit of Work•Identity Map•Lazy Load

Patrones Objeto-Relacionales Estructurales

•Identiy FIeld•Foreing Key Mapping•Association Table Mapping•…

•…

Page 8: Patrones Con C#

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; } }

Page 9: Patrones Con C#

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(); } }

Page 10: Patrones Con C#

10

Patrón Iteratorabstract 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"

Page 11: Patrones Con C#

11

Otros patrones

Page 12: Patrones Con C#

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!

Page 13: Patrones Con C#

13

Preguntas

Page 14: Patrones Con C#

Más información

Patterns of Enterprise Application Architecture - Martin Fowler