San*_*box 26 .net design-patterns
我想知道:.NET Framework中是否使用了任何GoF设计模式?
BOUNTY:
我在答案中看到了下面的MSDN链接.是否有任何帖子/视频,或者你可以列出模式,最重要的是它在哪里使用?
Pau*_*nde 40
.NET框架使用了许多 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] )Kev*_*che 23
这是一篇讨论这个话题的文章:
http://msdn.microsoft.com/en-us/magazine/cc188707.aspx
现在可以使用ASP.NET MVC添加MVC模式.:)
编辑:自您编辑/请求更多信息:
这篇文章列出了几种模式以及它们在框架中的使用位置. http://www.jot.fm/issues/issue_2006_11/article1.pdf
.NET中的提供程序都是Provider模型模式. http://msdn.microsoft.com/en-us/library/aa479030.aspx
.NET中的提供程序模式也使用策略模式.
工厂模式在几个地方使用,这是一个在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
我没有看过它,所以我不确定它们在框架中如何使用它们有多少...
正如评论中已经提到的,GoF模式可能在.NET框架中全部使用.哪个不是最容易回答的,因为框架是庞大的,除非MS在某些示例中列出,因为它并不总是显而易见的.对模式越熟悉越有可能会注意到使用它的框架类.
希望我添加的额外链接可以帮助您.
此外,http://www.dofactory.com/Framework/Framework.aspx还有一个待售套件(79-99美元),用于教授如何在.NET中使用/实现GoF模式但是他们会在阅读时列出还解释了MS在框架中使用它们的位置.