C#技术C#与设计模式

C#技术C#与设计模式

ID:40297816

大小:48.00 KB

页数:4页

时间:2019-07-30

C#技术C#与设计模式_第1页
C#技术C#与设计模式_第2页
C#技术C#与设计模式_第3页
C#技术C#与设计模式_第4页
资源描述:

《C#技术C#与设计模式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C#技术:C#与设计模式是什么造就了成功和快乐的程序员?当你的程序最终正常编译运行,而且你已经觉得它优雅到了极致,又是什么成就了这种美妙的“gotcha!”的感觉?你是如何设法使程序优雅,同时又要满足各种各样的“XX性”(灵活性、可维护性、可靠性、可复用性,以及其它)?最后,为什么一些程序员能比其他程序员更快地达到这种优雅的水准?你当然可以说:“有些人是为程序而生的,而有些人不是”。但以下的情况,即使在那些最优秀的程序员身上也会发生:盯着电脑上的一屏代码一连坐上几小时甚至几天,苦闷于这代码并不完全正确,艰难地努力着,试图把它改得更好。真正

2、的答案是:成功的程序员拥有两样重要的武器:好的程序设计语言和设计模式。本书致力于展示这一绝佳组合是如何将一个一般的程序员提升到专家层次的。老程序员们都不会忘记那些给编程语言带来进步的日子。今天我们想当然的事情(比如变量的类型检查)在20世纪70年代的编程语言中可能根本不存在或者只是可有可无的选项。面向对象(目前几乎是最基本的程序设计技术)也是在20世纪90年代才开始流行起来,更不要说泛型(现代集合类的基础,诸如栈(stack)、关联表(map)、链表(list)等都是建立在它的基础上),五年前它还只是个研究项目。成功的程序员总能跟上语言的

3、进步,但如何恰当地运用语言的新特性,即使对经验丰富的程序员来说,途径也不是那么明显。有些特性,比如自动属性(AutomaticProperty,参见第3章)和集合初始化式(CollectionInitializer,参见第3章),用途明显具体,容易理解;而另外一些特性,比如扩展方法(ExtensionMethod,参见2章),则相对抽象一些。语言中的许多新特性都需要通过示例程序来演示其用途。然而示例程序虽然有用,有时也会使问题变得模糊,因为例子总是面向具体问题的。给你一个将迭代器用于家族树管理器的例子(参见第9章),你能够在一个聊天室程序

4、中重用它吗?两者的关联一点都不明显,很容易被忽略。走进设计模式吧,它是为成功的程序员而准备的终极思维关联。设计模式封装了综合运用语言特性来解决问题的一般方法。设计模式提供了一种高层次的语言,程序员可以用它来描述系统并讨论常见问题的解决方案。这种语言由一些可识别的模式名字以及组成这些模式的元素所构成。合理地运用设计模式能指导开发者设计出好的系统,这样的系统从先前的大量实践经验中汲取营养,从而直接符合优秀的经验成果,而无需再次经历痛苦的发明过程。从市场的角度来看,设计模式极大提高了实践者的机动性及其已有知识的价值,因为这些模式提供了处理问题的

5、通用的、可识别的基本方法。每种模式都有一个解释性的名字,而且都可以用图来描述,从而显示出其中各种角色的协作。经典的设计模式只有23个(比英文字母的个数还少),通过一些实践,一个好的程序员完全能够掌握所有这些模式的名字及用法。当需要在设计中进行选择时,这些程序员将不再停留在对继承、接口和委托(delegate)等语言特性的选择上,相反,他们能够从更大的图景中直接切入:一个blog系统将适用观察者模式(参见第9章),一个社区网络系统则需要运用代理模式(详见第2章),等等。决策中考虑的元素并不是被消除了,而是被提升到一个更高的抽象层次。那么,由

6、谁来决定一种设计模式在特定语言中的实现方式呢?许多技术书籍,比如你手中的这一本,以及互联网上的一些作品都提供了各种模式的实现,同时给出了如何在各种模式中进行选择、甚至在同种模式的不同实现方式中进行选择的指导。然而,习惯的力量是巨大的,模式实现中用到的语言特性常常局限于20世纪80年代的语言。但本书不是这样。《C#3.0设计模式》的目标是全面运用C#3.0的风格来呈现23种经典设计模式,确保你在本书中学到的东西拥有长时间的实际价值。关于模式设计模式的引入源自ErichGamma,RichardHelm,RalphJohnson及JohnVl

7、issides四人的开创性著作《DesignPatterns:ElementsofReusableObject-OrientedSoftware》(Addison-Wesley出版)(译者注:国内出版过影印版及中译本,中文书名《设计模式:可复用面向对象软件的基础》)。该书所列举并详细描述的23种设计模式,成为该领域所有研究的基础,直到现在,这23种模式仍被视为基本的核心模式。这些核心模式通过传统的面向对象技术来解决问题,最初的模式实现都通过C++或Smalltalk语言来提供(因为它们是那个时代的主流面向对象编程语言)。从那时起,陆续出现

8、了其它一些书籍,分别用Java、VisualBasic和C#实现了这些模式。随着模式概念深入人心,也有人提议将一些新的模式加入到原来的模式列表中。而且,现在又出现了应用于特定领域的模式,这些领

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。