`
wsql
  • 浏览: 11776373 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

.NET设计模式开篇

 
阅读更多

.NET设计模式开篇

——.NET设计模式系列之一

Terrylee,2005年12月06日

前言

加入Design & Pattern团队有几个月的时间了,惭愧的是从没有写过关于设计模式的随笔,得到wayfarer的同意,把企业库系列的随笔放在了团队的首页上。不是不想去写这样的随笔,也不是没有时间,自己初学设计模式,去写设计模式的文章,有点班门弄斧的味道。园子里吕震宇老师的《设计模式系列》和wayfarer的《设计之道》堪称设计模式里的经典之作。可是正如wafarer所说的那样,受到发表欲的蛊惑,本着交流就是进步的想法,思考再三,还是决定写这样的随笔,来对设计模式做一些探索和总结,起名曰“探索设计模式”,有些言过其实,就当是记录自己学习设计模式的历程吧,不过还是希望能得到各位前辈的指点!

设计模式

设计模式是规则吗?

地上本没有路,走得人多了也就成了路。设计模式如同此理,它是经验的传承,并非体系;是被前人发现,经过总结形成了一套某一类问题的一般性解决方案,而不是被设计出来的定性规则;它不像算法那样可以照搬照用。

设计模式是架构吗?

架构和模式应该是一个属于相互涵盖的过程,但是总体来说架构更加关注的是所谓的High-Level Design,而模式关注的重点在于通过经验提取的“准则或指导方案”在设计中的应用,因此在不同层面考虑问题的时候就形成了不同问题域上的模式。模式的目标是,把共通问题中的不变部分和变化部分分离出来。不变的部分,就构成了模式,因此,模式是一个经验提取的“准则”,并且在一次一次的实践中得到验证,在不同的层次有不同的模式,小到语言实现,大到架构。在不同的层面上,模式提供不同层面的指导。

设计模式,软件的永恒之道?

这个问题没有答案,有的只是讨论,看一下一位前辈结合建筑学得出的几点心得吧:

和建筑结构一样,软件中亦有诸多的“内力”。和建筑设计一样,软件设计也应该努力疏解系统中的内力,使系统趋于稳定、有生气。一切的软件设计都应该由此出发。

任何系统都需要有变化,任何系统都会走向死亡。作为设计者,应该拥抱变化、利用变化,而不是逃避变化。

好的软件只能“产生”而不能“创造”,我们所能做的只是用一个相对好的过程,尽量使软件朝向好的方向发展。

需要设计模式吗?

答案是肯定的,但你需要确定的是模式的应用是否过度?我得承认,世界上有很多天才的程序员,他可以在一段代码中包含6 种设计模式,也可以不用模式而把设计做得很好。但我们的目标是追求有效的设计,而设计模式可以为这个目标提供某种参考模型、设计方法。

我们不需要奉GOF的设计模式为圭臬,但合理的运用设计模式,才是正确的抉择。很多人看过GOF的《Design Patterns》,对这23 种模式也背得滚瓜烂熟。但重要的不是你熟记了多少个模式的名称,关键还在于付诸实践的运用。为了有效地设计,而去熟悉某种模式所花费的代价是值得的,因为很快你会在设计中发现这种模式真的很好,很多时候它令得你的设计更加简单了。

其实在软件设计人员中,唾弃设计模式的可能很少,盲目夸大设计模式功用的反而更多。言必谈“模式”,并不能使你成为优秀的架构师。真正出色的设计师,懂得判断运用模式的时机。还有一个问题是,很多才踏入软件设计领域的人员,往往对设计模式很困惑。对于他们来说,由于没有项目的实际经验,OO 的思想也还未曾建立,设计模式未免过于高深了。其实,即使是非常有经验的程序员,也不敢夸口对各种模式都能合理应用。[--摘自wayfare的设计之道]

后记

关于设计模式的理论性的文章,已经写了很多了,我不想再继续重复抄写下去,仅记录下上面几段话,用它来作探索设计模式系列的一个开篇吧。[现已更名为.NET设计模式]


转载自:http://terrylee.cnblogs.com/archive/2005/12/09/293465.html
分享到:
评论

相关推荐

    asp.net知识库

    深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托...

    C语言设计模式

    $ ls 备忘录模式.pdf 工厂模式.pdf 模板模式.pdf 中介者...迭代器模式.pdf 开篇.pdf 原型模式.pdf 访问者模式.pdf 命令模式.pdf 责任链模式.pdf $ http://blog.csdn.net/feixiaoxing/article/category/951264的mirror

    ASP.NET MVC 4高级编程(第4版)清晰完整PDF版

    本书开篇简要介绍ASP.NET MVC框架,然后直奔主题,讨论使用ASP.NET和最新MicrosoftMVC来构建数据驱动的动态网站需要了解的所有重要知识点。书中提供了按部就班的详细指导和大量的代码示例,引导读者入门并逐渐掌握...

    ASP.NET4权威指南源代码下载

    从广度上讲,内容系统而全面,全书一共包含4个部分:第一部分以一个易于实践的示例开篇,既能帮助读者快速了解ASP.NET的开发流程,还能帮助读者建立ASP.NET开发的大局观,紧接着全面介绍了ASP.NET的各种常用控件,这...

    《ASP.NET 4 权威指南》pdf版

    第一部分以一个易于实践的示例开篇,既能帮助读者快速了解ASP.NET 的开发流程,还能帮助读者建立 ASP.NET 开发的大局观,紧接着全面介绍了ASP.NET 的各种常用控件,这是ASP.NET 的基础;第二部分 详尽地讲解了ASP...

    ASP.NET MVC 4高级编程(包含源码)

    本书开篇简要介绍ASP.NET MVC框架,然后直奔主题,讨论使用ASP.NET和最新MicrosoftMVC来构建数据驱动的动态网站需要了解的所有重要知识点。书中提供了按部就班的详细指导和大量的代码示例,引导读者入门并逐渐掌握...

    C语音设计模式

    开篇.pdf 继承、封装、多态.pdf 备忘录模式.pdf 工厂模式.pdf 模板模式.pdf 中介者模式.pdf 策略模式.pdf 观察者模式.pdf 桥接模式.pdf 装饰模式.pdf 抽象工厂模式.pdf 适配器模式.pdf 状态模式.pdf 代理...

    ASP.NET MVC 4高级编程(第4版)中文版 超清晰PDF

    本书开篇简要介绍ASP.NET MVC框架,然后直奔主题,讨论使用ASP.NET和最新MicrosoftMVC来构建数据驱动的动态网站需要了解的所有重要知识点。书中提供了按部就班的详细指导和大量的代码示例,引导读者入门并逐渐掌握...

    界面设计模式第二版 原版

    《界面设计模式(第2版)》开篇即总结了“与人有关”的各类问题,为读者提供了界面设计总体思路上的指引,帮助读者举一反三。  接下来,《界面设计模式(第2版)》收集并分析了很多常用的界面设计模式,帮助读者...

    ASP.NET MVC 4高级编程(第4版)中文版 超清晰PDF及配套源码Part1

    开篇简要介绍ASP.NET MVC框架,然后直奔主题,讨论使用ASP.NET和最新MicrosoftMVC来构建数据驱动的动态网站需要了解的所有重要知识点。书中提供了详细指导和大量的代码示例,引导读者入门并逐渐掌握高级主题。  ...

    界面设计模式

    , 本书开篇即总结了“与人有关”的各类问题,为读者提供了界面设计总体思路上的指引,帮助读者举一反三。, 接下来,本书收集并分析了很多常用的界面设计模式,帮助读者理解在实现级别的各种常用解决方案,将它们灵活...

    ASP.NET MVC5 框架揭秘+源码打包下载

    《ASP.NET MVC 5 框架揭秘》以一个模拟ASP.NET MVC内部运行机制的“迷你版MVC框架”作为开篇,其目的在于将ASP.NET MVC真实架构的“全景”勾勒出来。接下来本书以请求消息在ASP.NET MVC框架内部的流向为主线将相关的...

    [ASP.NET MVC 小牛之路] 文章系列

    一、[ASP.NET MVC 小牛之路]01 - 理解MVC模式 二、[ASP.NET MVC 小牛之路]02 - C#知识点提要 三、[ASP.NET MVC 小牛之路]03 - Razor语法 四、[ASP.NET MVC 小牛之路]04 - 依赖注入(DI)和Ninject 五、[ASP.NET MVC ...

    《ASP.NET MVC 5框架揭秘》高清带书签

    《ASP.NET MVC 5 框架揭秘》以一个模拟ASP.NET MVC内部运行机制的“迷你版MVC框架”作为开篇,其目的在于将ASP.NET MVC真实架构的“全景”勾勒出来。接下来《ASP.NET MVC 5 框架揭秘》以请求消息在ASP.NET MVC框架...

    ASP.NET MVC 5框架揭秘完整版 (蒋金楠) 高清pdf附源代码

    《ASP.NET MVC 5 框架揭秘》以一个模拟ASP.NET MVC内部运行机制的“迷你版MVC框架”作为开篇,其目的在于将ASP.NET MVC真实架构的“全景”勾勒出来。接下来本书以请求消息在ASP.NET MVC框架内部的流向为主线将相关的...

    ASP.NET MVC 5 框架揭秘

    《ASP.NET MVC 5 框架揭秘》以一个模拟ASP.NET MVC内部运行机制的“迷你版MVC框架”作为开篇,其目的在于将ASP.NET MVC真实架构的“全景”勾勒出来。接下来《ASP.NET MVC 5 框架揭秘》以请求消息在ASP.NET MVC框架...

    ASP.NET MVC5 框架揭秘

    《ASP.NET MVC 5 框架揭秘》以一个模拟ASP.NET MVC内部运行机制的“迷你版MVC框架”作为开篇,其目的在于将ASP.NET MVC真实架构的“全景”勾勒出来。接下来本书以请求消息在ASP.NET MVC框架内部的流向为主线将相关的...

    ASP.NET MVC 5 框架揭秘试读样章_netmvc_.netmvc_MVC.net_ASP.NETMVC_

    本书以一个模拟 ASP.NET MVC 内部运行机制的“迷你版 MVC 框架”作为开篇,其目的在于将ASP.NET MVC 真实架构的“全景”勾勒出来。接下来本书以请求消息在 ASP.NET MVC 框架内部的流向为主线将相关的知识点串联起来...

    ASP.NET MVC 5 框架揭秘 108M

    蒋金楠编的《ASP.NET MVC5框架揭秘》以一个 模拟ASENET MVC内部运行机制的“迷你版MVC框架” 作为开篇,其目的在于将ASENET MVC真实架构的“全 景”勾勒出来。接下来本书以请求消息在ASENET MVC 框架内部的流向为...

Global site tag (gtag.js) - Google Analytics