这段时间在学设计模式,总感觉有些悬浮在上,没有太多实际的例子,
故高分征求我们平时用的NET类库中的设计模式(1.1,2.0都可)
如果你知道,请用一下标示:
模式名:
涉及的类:
模式阐述:
思考:
解决方案 »
- 请教console的问题,sleep 之后需要在键盘上按键才能显示,如何做到直接在console中显示结果而不需要再按键?付代码
- static的不恰当应用?我到底错在哪里了?
- 谁有vc#.net写的类似于windows中的画图程序的源代码?谢谢 参考以下
- gridview 中如何获取当前行某一列的值?
- 求一算法
- 动态创建TextBox的问题~请高手帮忙
- C#打印程序相关问题
- NB问题: AxMicrosoft.Office.Interop.Owc11.AxSpreadsheet 对象不能在Asp.net页面中使用?
- 求实习公司!(版主手下留情啊)
- c#下多线程的tcp粘包问题,请高手指点思路。
- %%%%%%%%%%%%%%%%%%%%%为何执行this.Close()时并不立即退出?
- 如何使显示出来的表格可以逐行修改和删除?
太多了,先列几个
模式名: Chain of Responsibility Pattern [职责链模式]
涉及的类: IhttpHandler
模式阐述: ASP.NET对最初传进来的请求进行处理。对每个请求进行处理过滤,并将请求传递下一个Handler。
比如在Machine有很多这样的Handler,比如HttpForbiddenHandler,将某些请求退回。
使用者可以自己定义IhttpHandler,并加入到请求处理职责链中。
DataSet、DataTable、SqlDataAdapter、OracleDataAdapter、OledbDataAdapter、ObbcDataAdapter。这些DataAdapter作为了DataSet和各种数据库之间的适配器。模板方法模式:
.NET类库里面提供的所有的DataAdapter都是继承于DbDataAdapter的。类似的还有DbCommand类。
所有对象的基础,是对象必用到这模式代理:
Remoting装饰模式
.net控件设计器都用到了这个.
欢迎C#爱好者加入
赞同hdt(倦怠)
另,设计模式都是大家比较关心的,希望能提一些好的建议或好的资料。李建忠
C#面向对象设计模式纵横谈系列课程
http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/consyscourse/CsharpOOD.aspx
http://zhenyulu.cnblogs.com/category/6930.html?Show=All
http://www.ondotnet.com/pub/a/dotnet/2003/08/11/factorypattern.htmlDiscover the Design Patterns You're Already Using in the .NET Framework
http://msdn.microsoft.com/msdnmag/issues/05/07/DesignPatterns/
我们公司在开发一个系统,快完成了。设计的时候都是根据需求来决定的,中途还因为需求的改变调整过多次设计。回头看看,发现系统里面遍地都是所谓“模式”。什么适配器啦,什么singleton啦,什么bridge啦,狗屁,拿来吹牛唬人的。
作坊?嘿嘿。作坊与否是看结果,不是看过程的。我以前工作的公司,在某个行业内占有国内60%以上的份额,开发人员超过百人。从不用设计模式,作坊?我倒不知道那些不是作坊的公司做了多少好东西出来。我现在由个朋友整天和我说设计模式的问题,动不动和我说什么几层架构,某某模式。一个50万的小项目做了一年也没做完。
请参考MSDN开发精选2005.4期里面有,没有中文网上链接,不好意思。
思归老兄给出的这个地址是英文版的,可以参考。(Rob Pierry)
http://msdn.microsoft.com/msdnmag/issues/05/07/DesignPatterns/
用得好的话才能减小耦合封装“变化“,
如IOC,单一责任原则,里氏替换原则等等
要根据具体情况而定,而不是为模式而模式,
有时甚至需要反模式
学习模式的第一个问题就是要弄懂什么是设计模式,然后是为什么要学习,最后是怎样学习并使用模式。
首先,设计模式是对特定场景下一再重复出现的问题所采用的解决方法,它也是经过一代又一代的前辈编程经验的总结和归纳而产生的一系列成熟的解决问题的途径。设计模式来自于实际的编程实践中,而不是凭空创造的楼阁。
为什么要学习设计模式?一个最大的好处方便设计思想的交流,就如中国功夫的招式名称一样,当你对某个人说这个地方要使用工厂模式,那个地方要使用观察者模式,比你费半天的口水讲解你设计方法要方便的多。学习设计模式还会让你学习到许多新的思维方式,已经如何应变的编程能力。
楼上有的朋友说到,他们的项目中没有使用设计模式,都是硬写出来的,一样可以做好项目。其实不然,什么叫使用设计模式,难道一定要看到Factory, Builder, Bridge, Proxy这些名称才算是使用设计模式?也许在项目中已经不知不觉地用了设计模式自己都不知道,因为为了解决一个问题而抱头苦思,反复测试,结果得到方法却已经是人家早就使用成千上百次了,这就是不懂设计模式的后果。
最后一点就是如何学习和如何应用的问题。诚然,设计模式既然是对方法的总结,必然存在一定程度的抽象,但是漠视本身并不难理解,就像易经,由多少人看的懂,但是易经中的爻辞却是实实在在的日常生活的实例,只要你懂得古文言文,都看的懂。所以说学习设计模式,你首先对模式所处的环境(上下文)以及它要解决的问题(动机)做一番研究,这些东西是否在你的编程中出现过,你是如何解决它们的。只有你熟悉了模式所处的环境和要解决的问题,那么看设计模式是怎样解决问题(效果)就没有什么难度了。进而你也就掌握了或者说学到了。
楼上有朋友说不要为模式而模式,我想这个道理大家都知道,问题是如何做到呢?也就是什么时候使用模式呢?从我个人的学习中,总结出一点,那就是所谓的设计模式都是为了解决设计过程中的变化问题,也就是说如果你写的某一段代码有很多不确定的变化成分,那么就是使用设计模式的时候了,大部分的设计模式不外乎是把这些变化的因素尽量的向后推迟,或者是将变化的部分从不变的部分隔离出来,使得变化的部分在发生变化的时候,不会影响到不变的部分。
希望上述言论,对大家学习设计模式有所帮助,如有什么不对,欢迎拍砖。