扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
什么是设计模式?
什么是少林拳呢?少林拳是少林僧人经过长期的总结,得出的一套武功套路。有一本叫做少林拳法的武功秘籍,上面记载这这套拳法的适用人群,打法套路和学成后的
总之,设计模式要用活才能发挥作用。
设计模式有什么用?
设计模式可以让你在遇到需求变化的时候不至于手忙脚乱。设计模式可以让你程序的可维护性、可扩展性更好。设计模式可以让程序的性能更高。当然,这些的前提是正确使用了设计模式,如果滥用的话那么设计模式可以让程序没人看得懂,让程序速度慢到死,让程序不能维护,添加新的功能等于重做。
设计模式的原则?
记得看过一个例子很恰当,说是修电脑比修收音机简单多了。电脑坏了,更换一个零件即可,原因是电脑中的各部分都是基于相对稳定的接口,而且部件各司其职,不会相互影响,电脑本身就是一个非常符合设计原则的产品。收音机的修理没有这么简单了,没有什么部件是插件式的,会修收音机的人肯定明白其中每一个部件的原理。
小程序就好像收音机,确实可以这么做,一共才一个人做的,即使重新做也用不了多少时间。几十个人的大项目如果要改一个需求需要牵涉所有人来修改,那么这个项目用不了多少时间就会因为维护成本太大,维护后BUG太多而报废。
怎样学习设计模式?
学习
设计模式不是什么很高深的东西,有了这些知识大胆地学习吧。很多人说,看了很多设计模式的文章,为什么就是看不懂呢?我觉得原因可能有两个,第一就是你没有花时间认真看,第二就是看的文章不适合作为切入点。不管学习什么,切入点非常重要,如果切入点不是那么平易近人的话很可能会把你拒之门外,对于初学者来说从实例切入最合适。最好是能碰到自己做过的项目的实例作为切入点,这样你一比较就知道为什么设计模式好了。
如果要把设计模式的学习境界分一下级的话,我这么分:
不管怎么样,多看多做多替换才是学习的办法,别人举例十个都不及自己做一个例子,被动十个原则都不及自己体会出一个原则。每一种设计模式虽然都有一个骨架,但是也不必过于强调这个形式,很多时候根据自己的需求简化一点,改变一点,或者混杂一些其它的设计模式,只要能实现目的了,也是一个不错的选择。
很多人会觉得这么多种设计模式没有几种能用得上。我觉得这不是什么问题,用不上那就用不上,这些设计模式是大师经历无数大型项目后的精华,如果能在自己做的一个小项目中用上两三个就很不错了,用上二三十个的项目绝对是怪胎。用不上千万别强求,否则既不利于项目的可维护性又增加了工作量。
还有很多人会觉得这些设计模式很多都是相似的。而且每个人的感觉还不一样,有人觉得A和B很相似,有人却觉得A和B很好区分,但是B和C却很相似啊。感觉很好区分,说明你看准设计模式的着重点的,感觉一样说明你看到的还是它的形。双胞胎虽然形一样,但是神肯定不一样的,只要认准设计模式解决的问题,就不会看错。
关于本系列文章
本来这些内容都是用来进行公司内部每周知识分享活动的,既然有一些内容了,想想不妨就整理一下贴出来吧。也正由于这个原因,文章中的一些例子都基于团队内部成员所能理解的一些项目,可能这些项目对大家来说比较陌生,不过好处是例子相对比较贴近实际一点。本系列一共有20篇左右,除了介绍23种GOF设计模式中常用的一部分之外(一些设计模式的思想在C#语言中有了更简单的实现,一些设计模式不是很常用)还可能会介绍一些其它有用的设计模式。在这些文章中,我不会过多去说一些理论上的东西,也不会有结构图(这些内容网上到处都是),所有的内容都是围绕相对实际例子展开。我想,只有这样才能更快的吸收设计模式的神而不是其形。在看文章的时候建议你结合《设计模式》一书以及博客园的其它设计模式相关文章一起看,这样才能对设计模式理解的全面和充分一点。
每一篇文章都会有以下部分:
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者