2009-06-30 3 views
13

Один из способов улучшить понимание шаблонов проектирования - выяснить, как шаблоны используются в .NET Framework.Шаблоны проектирования, используемые в .NET framework?

Вы нашли примеры шаблонов проектирования в .NET framework? В своем ответе дайте краткое описание шаблона и пример того, как он используется в рамках.

Пример ответа:

Стратегия Design Pattern разъединяет алгоритм из класса, который использует его инкапсуляции алгоритм в отдельный класс. Это позволяет переключать алгоритмы.

Метод сортировки класса List является примером шаблона стратегии.

public void Sort(IComparer<T> comparer) 

Принимая интерфейс IComparer, пользователи класса могут переключать алгоритм сортировки во время выполнения.

+9

сообщества вики, пожалуйста – JoshJordan

+0

я предпочитаю чтение хорошая книга о шаблонах дизайна. Это просто чтение. – VVS

+4

@WS - Вы не можете найти все на SO в книге? Это немного сверху. – womp

ответ

2

Events в рамках .Net следовать Observer Pattern

2
  • ADO.Net все о Abstract Factory для избавления от деталей подключения к источникам данных
  • события реализация паттерна наблюдатель
  • .Net итераторы являются реализация шаблона Iterator
3

очевидным является одним Iterator pattern. используя IEnumerator класс в рамках:

итераторов в .NET Framework являются называемые «счётчики» и представлены интерфейсом IEnumerator. IEnumerator предоставляет метод MoveNext() , который переходит к следующему элементу и указывает, достигнут ли конец коллекции; a Текущее свойство, чтобы получить значение элемента, находящегося в данный момент, at; и дополнительный метод Reset(), до перемотайте перечислитель обратно в исходное положение . Перечислитель изначально указывает на специальное значение перед первым элементом, поэтому для начала требуется MoveNext(), чтобы начать итерации.

6

Decorator Pattern используется на занятиях Потока:

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

подклассов украшают поток, потому что они наследуют от него, и они также содержат экземпляр потока, который устанавливается в конструкторе.

Смежные вопросы