Шаблоны проектирования, используемые в платформе .NET?

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

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

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

Шаблон разработки стратегии отделяет алгоритм от класса, который использует его, инкапсулируя алгоритм в отдельный класс. Это позволяет переключать алгоритмы.

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

public void Sort(IComparer<T> comparer)

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

Ответы

Ответ 1

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

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

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

Ответ 2

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

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

Ответ 5

Events в .Net Framework следуйте за Observer Pattern

Ответ 6

  • ADO.Net - это абстрактная Factory, чтобы избавиться от деталей подключения к источникам данных.
  • События представляют собой реализацию шаблона Observer
  • .Net-итераторы - это реализация шаблона Iterator