2009-06-30 26 views
13

Una forma de aumentar su comprensión de los patrones de diseño es descubrir cómo se usan los patrones en .NET Framework.¿Patrones de diseño utilizados en .NET Framework?

¿Has encontrado algún ejemplo de patrones de diseño en .NET Framework? En su respuesta, brinde una breve descripción del patrón y un ejemplo de cómo se usa en el marco.

Ejemplo respuesta:

El Diseño Estrategia Patrón desacopla un algoritmo de la clase que lo utiliza encapsulando el algoritmo en una clase separada. Esto permite la conmutación de algoritmos.

El método Sort de la clase List es un ejemplo del patrón Strategy.

public void Sort(IComparer<T> comparer) 

Al aceptar una interfaz IComparer, los usuarios de la clase puede cambiar el algoritmo de ordenación en tiempo de ejecución.

+9

Comunidad wiki favor – JoshJordan

+0

prefiero la lectura un buen libro sobre patrones de diseño. Esto es solo recitar – VVS

+4

@WS - ¿no puedes encontrar todo en SO en un libro? Eso es un poco exagerado. – womp

Respuesta

2

Events en el .Net Framework seguir el ADO.Net Observer Pattern

2
  • es todo acerca de Abstract fábrica para deshacerse de los detalles de la conexión a fuentes de datos
  • eventos son una implementación del patrón Observer
  • iteradores .Net son una implementación del iterador
3

una obvia es la Iterator pattern. utilizando la clase IEnumerator en el marco:

iteradores en el Marco .NET son llamados "enumeradores" y representados por la interfaz IEnumerator. IEnumerator proporciona un método MoveNext() , que avanza al siguiente elemento e indica si se ha alcanzado el final de la colección; una propiedad actual , para obtener el valor del elemento que se apunta actualmente a; y un método Reset() opcional, al rebobinar el enumerador de nuevo a su posición inicial . El enumerador apunta inicialmente a un valor especial antes del primer elemento, por lo que se requiere una llamada a MoveNext() para comenzar a iterar .

6

El Decorator Pattern se utiliza en las clases Stream:

  • System.IO.Stream
    • System.IO.BufferedStream
    • System.IO.FileStream
    • System.IO .MemoryStream
    • System.Net.Sockets.NetworkStream
    • System.Security.Cryptography.CryptoStream

El subclases decorar corriente porque heredan de ella, y que también contiene una instancia de corriente que se ha configurado en el constructor.