1 / 44
文档名称:

无废话c 设计模式.doc

格式:doc   大小:126KB   页数:44页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

无废话c 设计模式.doc

上传人:xxq93485240 2019/1/26 文件大小:126 KB

下载得到文件列表

无废话c 设计模式.doc

文档介绍

文档介绍:什么是设计模式?  什么是少林拳呢?少林拳是少林僧人经过长期的总结,得出的一套武功套路。有一本叫做少林拳法的武功秘籍,上面记载这这套拳法的适用人群,打法套路和学成后的效果。设计模式虽然记录在了设计模式一书上,但是要真正掌握设计模式光靠看每一个模式的结构并且进行模仿是不够的。试想一下,在真枪实战的情况下,谁会和你按照少林拳法,一二三四的套路打呢?打套路也只能用来看看,只有当你能根据不同的场景灵活出招的时候才能说是学会了这套拳法。相似的例子还有三十六计,这也是一种模式,每种计谋都是针对不同场景的,如果不管遇到什么时候都来个“走为上”,那这仗还怎么打呢? 总之,设计模式要用活才能发挥作用。 设计模式有什么用?  设计模式可以让你在遇到需求变化的时候不至于手忙脚乱。设计模式可以让你程序的可维护性、可扩展性更好。设计模式可以让程序的性能更高。当然,这些的前提是正确使用了设计模式,如果滥用的话那么设计模式可以让程序没人看得懂,让程序速度慢到死,让程序不能维护,添加新的功能等于重做。 设计模式的原则? l        单一职责:你不希望因为电脑内存损坏而更换CPU吧,同样也不应该让一个类有多种修改的理由。l        对扩展开放,对修改封闭:你一定不希望电脑只有一个内存槽,加内存就要换主板吧,程序也应该能在不修改原先程序的情况下就能扩展功能。l        里氏替换:如果你买的DX9显卡不支持DX9特性,那么这个显卡一定没法用。如果父类的方法在子类中没有实现那就晕了。在程序的世界中千万别认为鸟都会飞,先考虑清楚将会有哪些鸟吧。l        依赖倒置:针对接口编程,这样即使实现有变也不需要修改外部代码。其实,现在电脑的硬件、网络通讯等都是符合这个原则的,比如USB接口、PCI-E接口、TCP/IP协议。l        接口隔离:花3000买一个带拍照、听MP3功能的手机还是花1000买一个手机、1000买一个MP3、1000买一个数码相机呢?买了前者的话手机动不动就要修,而且还不一定是因为不能打电话而修,买了后面三样的话即使修也不影响其它使用,你说买哪个?记得看过一个例子很恰当,说是修电脑比修收音机简单多了。电脑坏了,更换一个零件即可,原因是电脑中的各部分都是基于相对稳定的接口,而且部件各司其职,不会相互影响,电脑本身就是一个非常符合设计原则的产品。收音机的修理没有这么简单了,没有什么部件是插件式的,会修收音机的人肯定明白其中每一个部件的原理。小程序就好像收音机,确实可以这么做,一共才一个人做的,即使重新做也用不了多少时间。几十个人的大项目如果要改一个需求需要牵涉所有人来修改,那么这个项目用不了多少时间就会因为维护成本太大,维护后BUG太多而报废。 怎样学****设计模式?  学****新概念英文要什么基础?首先,要知道26个字母吧。如果你对面向对象完全没有概念的话,建议先可以看一下面向对象的一些知识。毕竟,设计模式是面向对象编程模式的一种总结。学了26个字母你就可以学****新概念了,但是,为了能更好地学****最好是先学一下国际音标。对于设计模式的学****来说,你可以学****一下UML的一些知识。当然,完全不知道UML也可以学****设计模式,在学****的过程中慢慢也就会UML了。设计模式不是什么很高深的东西,有了这些知识大胆地学****吧。很多人说,看了很多设计模式的文章,为什么就是看不懂呢?我觉得原因可能有两个,第一就是你没有花时间认真看,第二就是看的文章不适合作为切入点。不管学****什么,切入点非常重要,如果切入点不是那么平易近人的话很可能会把你拒之门外,对于初学者来说从实例切入最合适。最好是能碰到自己做过的项目的实例作为切入点,这样你一比较就知道为什么设计模式好了。如果要把设计模式的学****境界分一下级的话,我这么分:l        第一重:能看懂设计模式的文章l        第二重:能自己写一个设计模式的骨架l        第三重:能自己编一个新的运用设计模式的例子l        第四重:能在写代码的时候想到似乎有设计模式适合,在翻阅资料后找到了这种设计模式l        第五重:在理解项目的需求后就能意识到哪里可以使用哪种设计模式进行优化l        第六重:完全掌握了设计模式的精髓,灵活使用各种设计模式以及其变种不管怎么样,多看多做多替换才是学****的办法,别人举例十个都不及自己做一个例子,被动十个原则都不及自己体会出一个原则。每一种设计模式虽然都有一个骨架,但是也不必过于强调这个形式,很多时候根据自己的需求简化一点,改变一点,或者混杂一些其它的设计模式,只要能实现目的了,也是一个不错的选择。很多人会觉得这么多种设计模式没有几种能用得上。我觉得这不是什么问题,用不上那就用不上,这些设计模式是大师经历无数大型项目后的精华,如果能在自己做的一个小项目中用上两三