前段时间学习了设计模式,小有心得,在此愿与各位同僚分享,共同学习与进步。后续文章将以连载的方式,每一篇介绍一个设计模式。希望大家不吝言辞,多多评论与交流。文章中的内容,观点将以本人所学到的,并结合自己的心得加以阐述,如有错误的地方,欢迎大家批评指正。
文章将以java语言为载体来介绍各不同的设计模式。
进入正题,以下是学习设计模式前的几个问题的思考:
一, 设计模式是很高深的存在吗?
不是,我觉得凡是稍微有点面向对象基础的人,都具备了学习上设计模式的条件。大家觉得他高深可能是因为觉得只有设计师,架构师才用得到这些东西。这么想也不能完全错误,但是,如果你有兴趣往那个方向努力,先学习一些这方面的知识还是很有用的,毕竟谁也不是生来就是大牛。(当然要成为架构师,不是仅凭学一些模式就是可以的),如果你能找一些描述比较好的资料,学习起来还是比较轻松的,推荐初学者看看这本书:《Head First设计模式》,有中英文版。
二,设计模式能带来什么?
设计是面向对象编程的灵魂,你同意吗?
如果你对此没有很深的体会,那你应该学习设计模式。即使学习了设计模式不能马上为你带来一个好的工作或职位的提升(这是正常的),你也会被模式的魅力深深吸引,甚至可能会给你带来颠覆性的思维。
三,什么是设计模式?
引用一些权威的定义:“模式是在某情境下,针对某问题的解决方案”
这里涉及三个概念,情境,问题,解决方案。
要能成为模式,这种情境,问题,及解决方案必须是被反复证明可行的,是通用的。这个可能有点抽象,在学习之前,也不必深究。
四,什么时候该用模式?
这个问题在学习之前,不用考虑太多。先学便是。学习过程中,你可能会慢慢找到答案。而且,对模式的运用到了一定的层次,这个问题便没了意义,对于模式的运用,是很自然的事情,你不会刻意去考虑该用什么模式。
好了,开始我们正式的设计模式之旅吧,先从一些简单的模式开始吧。下一篇文章将介绍第一个设计模式--适配器模式。