通过大约两个月的磨蹭,我终因而把设计模式打下来了。html
具体详细在:http://www.cnblogs.com/linkstar/category/1087887.html程序员
那么当我学习完成以后,所想到的第一件事,也就是大家标题上面所看到的同样面试
学设计模式到底有啥用啊?在我学习完成以后为了写这个总结也是抓耳挠腮了一遍编程
因此在此须要对学习进行一个总结,这也是一个我的的总结,若是有不对的地方也请原谅设计模式
我所能想到的广泛的目的有下面几个架构
一、别人都说要学,别人都说好,因此我要学框架
二、面试会被问,因此必须学学习
三、读源码时看到别人在用,不学看不懂源码为何这样写优化
四、我恰好看到一本设计模式的书,嗯不错,我想学学spa
是否是看上去都直戳你的心,好像确实是这样的
不过我能够这么说,不管你出于哪种目的去学习,只要去学习总比不学要好,至于学了有没有用,那就是你看下去的缘由咯
从书上摘话给大家看看
帮助咱们将应用组织成容易了解,容易维护,具备弹性的架构,创建可维护的OO系统,要诀在于随时想到系统之后可能须要的变化以及应付变化的原则。
这么复杂的解释确定是不肯意看了,我用个人话来总结
一、设计模式能让专业人之间交流方便,以下:
程序员A:这里我用了XXX设计模式
程序员B:那我大体了解你程序的设计思路了
二、易维护
项目经理:今天客户有这样一个需求…
程序员:明白了,这里我使用了XXX设计模式,因此改起来很快
三、设计模式是编程经验的总结
程序员A:B,你怎么想到要这样去构建你的代码
程序员B:在我学习了XXX设计模式以后,好像天然而然就感受这样写能避免一些问题
四、学习设计模式并非必须的
程序员A:B,你这段代码使用的是XXX设计模式对吗?
程序员B:很差意思,我没有学习过设计模式,可是个人经验告诉我是这样写的
上面就是我总结的设计模式的做用,我想聪明的你应该能理解我所表达的意思
我想不少人关心这个问题,确实我很关心,否则总感受本身学习完成以后,跟没有学没什么区别
首先我不想和别人说的同样:“设计模式是一种思想,是一种经验,你写多了天然就明白了”
我不否定,可是我以为不是干货,听了总很难过。
因此我总结了我本身的用法
一、若是你处于黄金级别(下面有提到)请在优化代码的时候再使用设计模式!!!
个人理解是这样的,首先在此,你对设计模式的理解并非很深刻,若是直接拿来用,可能会致使不少问题。因此你在写代码的时候,宁肯忘记你学过设计模式,而后你本身去写。当你写完了以后,你须要对你的代码进行优化,那么这个时候你就须要尝试去找问题了。在你的代码中是否有不少重复片断,是否有不少冗长的代码,一个类的职责是否过多,若是客户提出修改你的代码是否能进行维护和修改。此时你若是你发现有地方须要进行优化,而优化的方式有所参考的话,你就能够进行使用了。
这样的好处是,你明显能感受到使用设计模式先后,你代码的变化,以及这个设计模式的好处,在之后的工做中就有经验了。
固然很差的地方是,明显很累嘛,可是前期吃点苦,我以为踩踩坑也没什么很差的。固然若是你是高手,那当这条没看到~
二、请使用设计模式的专有命名
好比说,在一个地方你须要使用工厂模式,那么你就在工厂类的名字后面加Factory,其余的设计模式也是相似的
一个是为了你本身之后维护的方便,一个是为了别人协同工做的时候阅读你代码的方便,这样大家交流就有了共同的语言
三、明白设计模式的做用,参考别人代码中去使用会颇有效
若是你在使用一个设计模式前,请明白这个设计模式的做用是什么
再者,如:当你看到MyBatis源码中产生SqlSession对象使用工厂模式,那么你先去想为何它要这么作,这样作的好处是什么,你的业务是否也是和他相同的情况呢?
当你了解了环境以后,你使用设计模式会变得很是有效
四、设计模式多用于复杂系统,方法设计,负责业务逻辑,增长代码可维护性方面
你学习了这么多东西,你确定会说,我在实际中也没见到什么人在他的代码中使用设计模式呀。
确实在实际的项目中,其实若是不是很是复杂的项目基本上用不到设计模式,也没有什么特别的必要,不少时候,设计模式会出如今上面所说的状况下,因此你也不须要奇怪。
渐渐的你有一天就会明白它的存在。
一、青铜:刚开始学编程不久,据说过什么是设计模式
二、白银:有很长时间的编程经验,本身写了不少代码,其中用到了设计模式,可是本身殊不知道
三、黄金:学习过了设计模式,发现,哇,原来我已经在使用了,而且发现了一些新的模式挺好用的
四、铂金:阅读了不少别人写的源码,在其中看到别人设计模式精彩的使用因此学习了下来
五、钻石:代码写着写着,本身都没有意识到使用了设计模式,就熟练的写了下去
这个也只是我我的认为的比较好的学习时间,仅供参考
面向对象思想扎实,且对于程序设计有本身认识见解的时候
能熟练使用别人的框架作一些简单的项目
有过至少一个本身的完整项目
想进一步提高本身代码认识水平能力的时候
一、首先经过书本,或者博客,了解熟知常见的设计模式
二、本身尝试写出关于这个设计模式的例子
三、尝试在别人的代码中找到这样的设计模式进行学习
四、积累
正所谓“不积跬步,无以致千里”学习是一个积累的过程。
以后这个设计模式这个分类讲慢慢整理我在阅读源码中所遇到的设计模式。争取不断更咯~
做者:LinkinStar