没有合适的资源?快使用搜索试试~ 我知道了~
无废话C#设计模式系列文章
4星 · 超过85%的资源 需积分: 10 16 下载量 157 浏览量
2011-10-25
11:35:26
上传
评论
收藏 1.4MB PDF 举报
温馨提示
试读
198页
设计模式可以让你在遇到需求变化的时候不至于手忙脚乱。设计模式可以让你程序的可维护 性、可扩展性更好。设计模式可以让程序的性能更高。当然,这些的前提是正确使用了设计模式,如 果滥用的话那么设计模式可以让程序没人看得懂,让程序速度慢到死,让程序不能维护,添加新的功 能等于重做
资源推荐
资源详情
资源评论
无废话 C# 设计模式
(原创)无废话 C# 设计模式之一:开篇
(原创)无废话 C# 设计模式之二: Singleton
(原创)无废话 C# 设计模式之三: Abstract Factory
(原创)无废话 C# 设计模式之四: Factory Method
(原创)无废话 C# 设计模式之五: Prototype
(原创)无废话 C# 设计模式之六: Builder
(原创)无废话 C# 设计模式之七: Adapter
(原创)无废话 C# 设计模式之八: Facade
(原创)无废话 C# 设计模式之九: Proxy
(原创)无废话 C# 设计模式之十: Flyweight
(原创)无废话 C# 设计模式之十一: Composite
(原创)无废话 C# 设计模式之十二: Bridge
(原创)无废话 C# 设计模式之十三: Decorator
(原创)无废话 C# 设计模式之十四: Template Method
(原创)无废话 C# 设计模式之十五: Strategy
(原创)无废话 C# 设计模式之十六: State
(原创)无废话 C# 设计模式之十七: Chain Of Resp.
(原创)无废话 C# 设计模式之十八: Command
(原创)无废话 C# 设计模式之十九: Observer
(原创)无废话 C# 设计模式之二十: Mediator
(原创)无废话 C# 设计模式之二十一: Visitor
(原创)无废话 C# 设计模式之二十二:总结 ( 针对 GOF23)
无废话 C# 设计模式之一:开篇
什么是设计模式?
什么是设计模式?
什么是设计模式?
什么是设计模式?
什么是少林拳呢?少林拳是少林僧人经过长期的总结 , 得出的一套武功套路 。 有一本叫做少林
拳法的武功秘籍 , 上面记载这这套拳法的适用人群 , 打法套路和学成后的效果 。 设计模式虽然记录在
了设计模式一书上 , 但是要真正掌握设计模式光靠看每一个模式的结构并且进行模仿是不够的 。 试想
一下 , 在真枪实战的情况下 , 谁会和你按照少林拳法 , 一二三四的套路打呢?打套路也只能用来看看
,
只有当你能根据不同的场景灵活出招的时候才能说是学会了这套拳法。相似的例子还有三十六计 , 这
也是一种模式 , 每种计谋都是针对不同场景的 , 如果不管遇到什么时候都来个 “ 走为上 ” , 那这仗还
怎么打呢?
总之,设计模式要用活才能发挥作用。
设计模式有什么用?
设计模式有什么用?
设计模式有什么用?
设计模式有什么用?
设计模式可以让你在遇到需求变化的时候不至于手忙脚乱。设计模式可以让你程序的可维护
性、可扩展性更好。设计模式可以让程序的性能更高。当然,这些的前提是正确使用了设计模式 , 如
果滥用的话那么设计模式可以让程序没人看得懂 , 让程序速度慢到死 , 让程序不能维护 , 添加新的功
能等于重做。
设计模式的原则?
设计模式的原则?
设计模式的原则?
设计模式的原则?
� 单一职责:你不希望因为电脑内存损坏而更换 CPU 吧,同样也不应该让一个类有多种
修改的理由。
�
对扩展开放,对修改封闭:你一定不希望电脑只有一个内存槽,加内存就要换主板吧
,
程序也应该能在不修改原先程序的情况下就能扩展功能。
�
里氏替换:如果你买的 DX9 显卡不支持 DX9 特性,那么这个显卡一定没法用。如果父
类的方法在子类中没有实现那就晕了。在程序的世界中千万别认为鸟都会飞,先考虑清楚
将会有哪些鸟吧。
� 依赖倒置 : 针对接口编程 , 这样即使实现有变也不需要修改外部代码 。 其实 , 现在电脑
的硬件、网络通讯等都是符合这个原则的,比如 USB 接口、 PCI-E 接口、 TCP/IP 协议。
� 接口隔离:花 3000 买一个带拍照、听 MP3 功能的手机还是花 1000 买一个手机、 1000
买一个 MP3 、 1000 买一个数码相机呢?买了前者的话手机动不动就要修 , 而且还不一定是
因为不能打电话而修,买了后面三样的话即使修也不影响其它使用,你说买哪个?
记得看过一个例子很恰当,说是修电脑比修收音机简单多了。电脑坏了,更换一个零件即可 , 原
因是电脑中的各部分都是基于相对稳定的接口 , 而且部件各司其职 , 不会相互影响 , 电脑本身就是一
个非常符合设计原则的产品 。 收音机的修理没有这么简单了 , 没有什么部件是插件式的 , 会修收音机
的人肯定明白其中每一个部件的原理。
小程序就好像收音机,确实可以这么做,一共才一个人做的,即使重新做也用不了多少时间 。 几
十个人的大项目如果要改一个需求需要牵涉所有人来修改 , 那么这个项目用不了多少时间就会因为维
护成本太大,维护后 BUG 太多而报废。
怎样学习设计模式?
怎样学习设计模式?
怎样学习设计模式?
怎样学习设计模式?
学习新概念英文要什么基础?首先 , 要知道 26 个字母吧 。 如果你对面向对象完全没有概念的话
,
建议先可以看一下面向对象的一些知识。毕竟,设计模式是面向对象编程模式的一种总结。学了 26
个字母你就可以学习新概念了 , 但是 , 为了能更好地学习最好是先学一下国际音标 。 对于设计模式的
学习来说,你可以学习一下 UML 的一些知识。当然,完全不知道 UML 也可以学习设计模式,在学
习的过程中慢慢也就会 UML 了。
设计模式不是什么很高深的东西 , 有了这些知识大胆地学习吧 。 很多人说 , 看了很多设计模式的
文章 , 为什么就是看不懂呢?我觉得原因可能有两个 , 第一就是你没有花时间认真看 , 第二就是看的
文章不适合作为切入点 。 不管学习什么 , 切入点非常重要 , 如果切入点不是那么平易近人的话很可能
会把你拒之门外 , 对于初学者来说从实例切入最合适 。 最好是能碰到自己做过的项目的实例作为切入
点,这样你一比较就知道为什么设计模式好了。
如果要把设计模式的学习境界分一下级的话,我这么分:
� 第一重:能看懂设计模式的文章
�
第二重:能自己写一个设计模式的骨架
�
第三重:能自己编一个新的运用设计模式的例子
� 第四重 : 能在写代码的时候想到似乎有设计模式适合 , 在翻阅资料后找到了这种设计模
式
� 第五重:在理解项目的需求后就能意识到哪里可以使用哪种设计模式进行优化
�
第六重:完全掌握了设计模式的精髓,灵活使用各种设计模式以及其变种
不管怎么样 , 多看多做多替换才是学习的办法 , 别人举例十个都不及自己做一个例子 , 被动十个
原则都不及自己体会出一个原则 。 每一种设计模式虽然都有一个骨架 , 但是也不必过于强调这个形式
,
很多时候根据自己的需求简化一点,改变一点,或者混杂一些其它的设计模式,只要能实现目的了
,
也是一个不错的选择。
很多人会觉得这么多种设计模式没有几种能用得上 。 我觉得这不是什么问题 , 用不上那就用不上
,
这些设计模式是大师经历无数大型项目后的精华 , 如果能在自己做的一个小项目中用上两三个就很不
错了 , 用上二三十个的项目绝对是怪胎 。 用不上千万别强求 , 否则既不利于项目的可维护性又增加了
工作量。
还有很多人会觉得这些设计模式很多都是相似的 。 而且每个人的感觉还不一样 , 有人觉得 A 和 B
很相似,有人却觉得 A 和 B 很好区分,但是 B 和 C 却很相似啊。感觉很好区分,说明你看准设计模
式的着重点的 , 感觉一样说明你看到的还是它的形 。 双胞胎虽然形一样 , 但是神肯定不一样的 , 只要
认准设计模式解决的问题,就不会看错。
关于本系列文章
关于本系列文章
关于本系列文章
关于本系列文章
本来这些内容都是用来进行公司内部每周知识分享活动的 , 既然有一些内容了 , 想想不妨就整
理一下贴出来吧。也正由于这个原因,文章中的一些例子都基于团队内部成员所能理解的一些项目
,
可能这些项目对大家来说比较陌生 , 不过好处是例子相对比较贴近实际一点 。 本系列一共有 20 篇左右
,
除了介绍 23 种 GOF 设计模式中常用的一部分之外(一些设计模式的思想在 C# 语言中有了更简单的
实现 , 一些设计模式不是很常用 ) 还可能会介绍一些其它有用的设计模式 。 在这些文章中 , 我不会过
多去说一些理论上的东西,也不会有结构图(这些内容网上到处都是 ) ,所有的内容都是围绕相对实
际例子展开 。 我想 , 只有这样才能更快的吸收设计模式的神而不是其形 。 在看文章的时候建议你结合
《设计模式 》 一书以及博客园的其它设计模式相关文章一起看 , 这样才能对设计模式理解的全面和充
分一点。
剩余197页未读,继续阅读
资源评论
- SpikeKnox2013-02-24感谢分享, 离线看看方便.
- mfohk2015-09-22好是好,但是代码行距太大了,看得很累
- cookieyan2012-03-05好东西,值得去学,不过里面说的设计模式少了点。有4、5个模式
nanyanming
- 粉丝: 2
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功