欢迎来到天天文库
浏览记录
ID:40297474
大小:234.34 KB
页数:22页
时间:2019-07-30
《NET Framework中已使用的设计模式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、2010年12月20日[Don'tbelieveinmagic!Understandwhatyourprogramdo,howtheydo!目标的坚定是性格中最必要的力量源泉之一,也是成功的利器之一。没有它,天才也会在矛盾无定的迷径中徒劳无功。].NET(C#)Internals:.NETFramework中已使用的设计模式2010-05-2920:01by吴秦,2234visits,网摘,收藏,编辑——适合有一定设计模式基础和.NET基础的人阅读。写在前面“设计模式”我一向是敬而远之的态度,不会去写这方面的文章,原因有二:第一,要想写好设计模式的文章太难,需要笔
2、者丰富的经验;第二,没有深厚的功底写出的设计模式文章容易误导他人。自认没有深厚的功底,但我不会为了设计模式而设计模式。我想大部分人对设计模式的理解是不够深刻的,不然应用自如,特别是初学者!所有研究高质量的源码或框架是我们学习实践设计模式的好途径之一。而我之所以写这篇文章,主要是因为它从.NETFramework入手介绍已经使用的设计模式,作为一个.NET开发人员应该再熟悉不过了,能够有比较深刻的认识和理解。本文从.NETFramework中入手,发掘在.NETFramework中如何使用设计模式的。从中我们知道我们平时使用.NET时,我们使用了那些模式及学习使用设
3、计模式。本文意译自DiscovertheDesignPatternsYou'reAlreadyUsinginthe.NETFramework及加入了相关设计模式的UML表示和主要介绍。主要内容如下:·.NETFramework中使用的观察者模式(ObserverPattern)·.NETFramework中使用的迭代器模式(IteratorPattern)·.NETFramework中使用的装饰模式(DecoratorPattern)·.NETFramework中使用的适配器模式(AdapterPattern)·.NETFramework中使用的工厂模式(Fact
4、oryPattern)·.NETFramework中使用的策略模式(StrategyPattern)·ASP.NET中的组合模式(CompositePattern)·.NETFramework中使用的模板方法模式(TemplateMethodPattern)·ASP.NET管道中的模式(PatternsintheASP.NETPipeline)o截取过滤器模式(InterceptingFilterPattern)o页面控制器模式(PageControllerPattern)oASP.NET中的其它web表示模式(OtherWebPresentationPatter
5、nsinASP.NET)·总结222010年12月20日[Don'tbelieveinmagic!Understandwhatyourprogramdo,howtheydo!目标的坚定是性格中最必要的力量源泉之一,也是成功的利器之一。没有它,天才也会在矛盾无定的迷径中徒劳无功。]1、观察者模式(ObserverPattern)观察者模式:在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常通过调用各观察者所提供的方法来实现。它的UML表示如下:图1、观察者模式的UML表示(来源:维基百科)好的面向对象设计都强调封装(
6、encapsulation)和松耦合(loosecoupling)。换句话说,类应该保持内部细节私有并且最小化类之间严格的依赖关系。大部分应用程序,类并不是独立工作的,而是与其他类交互的。类交互的一个通常例子是:一个类应该(观察者,Observer)被通知,当被观察者(Subject)的某些东西改变了。例如,当单击一个按钮后可能某些WindowsForms的控件需要更新他们的显示。一个简单的解决方案是,当状态改变时让被观察者调用观察者特定的方法。但是,这回引入一连串的问题。因为被观察者需要知道调用哪个方法,这样就与特定观察者产生了紧耦合(tightcoupling
7、)。而且,如果当需要添加多个观察者时,不得不继续添加每个观察者方法调用的代码。如果观察者的数量动态地改变,这将变得更复杂。这将很难维护!应用观察者模式能有效地解决这个问题。可以从观察者解耦被观察者,因此在设计时和运行时观察者可以容易地添加和移除。被观察者维护者一个对它感兴趣的观察者列表,每次被观察者的状态改变时,它对每个观察者调用Notify方法。下面这段代码展示了一个实现示例:viewsource222010年12月20日[Don'tbelieveinmagic!Understandwhatyourprogramdo,howtheydo!目标的坚定是性格中最必要
8、的力量源泉
此文档下载收益归作者所有