Я хотел бы знать: какие-либо шаблоны дизайна GoF используются в .NET Framework?
BOUNTY:
Я видел ссылку MSDN ниже в ответе. Есть ли сообщение/видео или вы можете перечислить шаблоны и, самое главное, где он используется?
Я хотел бы знать: какие-либо шаблоны дизайна GoF используются в .NET Framework?
BOUNTY:
Я видел ссылку MSDN ниже в ответе. Есть ли сообщение/видео или вы можете перечислить шаблоны и, самое главное, где он используется?
Вот статья, в которой обсуждается эта тема:
http://msdn.microsoft.com/en-us/magazine/cc188707.aspx
И теперь шаблон MVC можно добавить с помощью ASP.NET MVC.:)
РЕДАКТИРОВАТЬ: Поскольку ваше редактирование/запрос для получения дополнительной информации:
Вот статья, в которой перечислены несколько шаблонов и где они используются в рамках. http://www.jot.fm/issues/issue_2006_11/article1.pdf
Провайдеры в .NET - все модели модели поставщика. http://msdn.microsoft.com/en-us/library/aa479030.aspx
В шаблонах поставщиков в .NET также используется шаблон стратегии.
Шаблон factory используется в нескольких местах и здесь образец, в котором он использовался в ASP.NET. http://msdn.microsoft.com/en-us/library/ms954600.aspx
Здесь веб-трансляция DP в .NET: http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&EventID=1032293567&CountryCode=US
Я не смотрел его, поэтому я не уверен, насколько это важно в том, как они используются в Framework...
Как уже упоминалось в комментарии, шаблоны GoF, вероятно, все используются в платформе .NET. Где не совсем проще ответить, поскольку структура является массивной, и если MS не публикует такие данные, перечисленные в некоторых из приведенных примеров, это не всегда очевидно. Более знакомый с шаблоном, тем более вероятно, что вы заметили класс framework, который его использовал.
Надеюсь, дополнительные ссылки, которые я добавил, помогут вам.
Кроме того, http://www.dofactory.com/Framework/Framework.aspx содержит комплект для продажи ($ 79-99), который посвящен обучению использованию/внедрению шаблонов GoF. NET, но они делают список при чтении, они также объяснят, где MS использует их в Framework.
.NET Framework использует многие шаблоны Gang of Four. Вот несколько примеров:
Творческие образцы
System.Data.Common.DbProviderFactory
. Каждая функция-член этого класса является фабричным методом.System.Data.IDbConnection.BeginTransaction()
. Тип создаваемой транзакции зависит от базовой реализации IDbConnection.WebRequest.Create()
возвращает конкретный тип, который зависит от схемы URL.Структурные узоры
System.Data.SqlClient.SqlConnection
, System.Data.OleDb.OleDbConnection
и т.д. Каждый провайдер является адаптером для своей конкретной базы данных.System.Windows.Forms.Control
и его производные классы.System.Web.UI.Control
и его производные классы.System.Xml.XmlNode
и его производные классы.System.Windows.Controls.Decorator
(в WPF).Stream
являются декораторами внутреннего потока (например, GZipStream
, CryptoStream
).System.Xml.Serialization.XmlSerializer
. XmlSerializer скрывает сложную задачу (которая включает генерацию сборок на лету!) За очень простым в использовании классом.System.ServiceModel.ClientBase<TChannel>
Поведенческие образцы
System.Web.UI.Control.OnBubbleEvent()
и System.Web.UI.Control.RaiseBubbleEvent()
.System.Windows.Input.ICommand
(в WPF).System.Linq.Expressions.Expression
и связанные классы.System.Collections.IEnumerable
.System.Collections.Generic.IEnumerable<T>
.System.Data.IDataReader
.System.Linq.Expressions.ExpressionVisitor
(используется внутри [LINQ])Прочтите "Руководство по разработке рамок: соглашения, идиомы и шаблоны для многоразовых библиотек .NET". Эта книга покажет вам реальные шаблоны проектирования, на которых основывалась .NET.
Конечно. Например, шаблон Factory используется в классах поставщика данных ADO.NET. Шаблон Singleton используется в удалении .NET. Dispose pattern используется в управлении ресурсами.
Методы BeginXXX и EndXXX в BCL основаны на шаблоне токена асинхронного завершения.
Да, в.Net Framework BCL используется много шаблонов проектирования. На самом деле это лучшее место для изучения использования шаблонов проектирования в перспективе.
Шаблон наблюдателя: реализован в виде событий и делегатов
Шаблон декоратора: реализован в классах System.IO Stream
Шаблон итератора: IEnumerable & Iterator
Шаблон стратегии: Реализован в экспериментальных запросах от Linq до Lambda (list.Where (выражение))
Шаблон фабрики: в System.Net.WebRequest
Шаблон адаптера: TLB Import/RCW (обертываемые оболочки во время выполнения)
Пожалуйста, проверьте это видео для подробной презентации по этой теме.
https://www.youtube.com/watch?v=riHGGYHVoaQ&list=PL2_Cl8E2bG36PGuBGesHFPVM1s6M02JmN