无我

让内心永远燃烧着伟大的光明的精神之火!
灵活的思考,严谨的实现
豪迈的气魄、顽强的意志和周全的思考

学习和理解设计模式

      如何学习和理解设计模式?

      ——对任何事物或原理的研究和学习,一定要始终记住一个要点:只有思维先进入这一层,也就是在大脑里形成分析该问题的上下文环境,在这个基础上,然后再用想关的思维方式考虑问题,才是清晰的,才是正确的。尤其是对深层原理和技术,必须是这样。

      好的。回到设计模式的话题上,无疑的,设计模式应该说是面向对象程序设计中较高层也较深入的研究方向了。我们先理解什么是模式和设计模式,这里,好像也并没有一个统一说明该术语的解释,但是我觉得《设计模式》一书中的这一句就可以了:

      Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”[AIS+77,第10页]。尽管Alexander所指的是城市和建筑模式,但他的思想也同样适用于面向对象设计模式,只是在面向对象的解决方案里,我们用对象和接口代替了墙壁和门窗。两类模式的核心都在于提供了相关问题的解决方案。

      这一句,首先从建筑的角度阐述了模式的概念,模式本身说明了我们周围无数问题之间都充满的共性,而将这引入面向对象程序设计领域,自然也充满了相同的地方,发现这些方案的核心并提炼出其中的架构,就是我们通俗讲的设计模式。

      知其然,那又如何理解和学习其所以然呢?

      要记住,设计模式是建立在面向对象基础上,用于解决类和对象的设计和之间相互通信的技术。所以当学习和理解设计模式时,首先我们面对和考虑的问题域应该已经是类和对象了,而不是对现实问题或世界的建模或者别的什么,不然我们很可能就会坠入永无天日的深渊!

      而明白了这个关键的要素,下面的进展就是水到渠成了。利用设计模式这些有效的方案和架构,帮助我们分解合适的对象,控制对象的粒度,指定对象的接口,最后到描述对象的实现,多加研究和练习,我们就能很好的运用设计模式设计出架构清晰,可复用性好的程序了。

      总结:本篇文章全是思想层面的讲述,文字简短但是其中有的意思是很深刻的,可能需要在不断的学习和实践中加深理解。但是最关键的,也是突破最大障碍的银弹是上文说过的一句话,此处再着重强调:

      对任何事物或原理的研究和学习,一定要始终记住一个要点:只有思维先进入这一层,也就是在大脑里形成分析该问题的上下文环境,在这个基础上,然后再用想关的思维方式考虑问题,才是清晰的,才是正确的。尤其是对深层原理和技术,必须是这样。

posted on 2011-03-29 11:07 Tim 阅读(378) 评论(4)  编辑 收藏 引用 所属分类: 设计模式

评论

# re: 学习和理解设计模式[未登录] 2011-07-10 14:16 ZK

是否可以分享一些这方面好的书籍。  回复  更多评论   

# re: 学习和理解设计模式[未登录] 2011-07-10 14:17 ZK

可否介绍一下学习路径,及方法等方面的经验。 谢谢  回复  更多评论   

# re: 学习和理解设计模式 2011-07-15 12:11 Tim

我觉得最深刻的莫过于这本《设计模式:可复用面向对象软件的基础》了。不过也正因为她的深刻,所以有些难懂。不过没关系,暂时不懂的就跳过去,等以后经验丰富了,再看就明白了。所以,也就是说:这本书不是看一遍两遍就能说学会了的,是要常看常理解的。@ZK
  回复  更多评论   

# re: 学习和理解设计模式 2011-07-15 12:16 Tim

学习设计模式,最好是结合已有的源代码,比如你手头上工作的项目中有用了较好的设计模式,那么结合理论和代码去看就能学得更快更深了。反正,如果只看书,只有理论,基本上无法理解;而如果只有源代码,其中还包含设计精妙的设计模式,但是对理论一点不会,那么理解这些代码同样很困难。
BTW,如果有一个人帮你,给你分析说项目中哪里采用了什么样的设计模式,那么这是最好的学习方式。@ZK
  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

公告

本博客原创文章,欢迎转载和交流。不过请注明以下信息:
作者:TimWu
邮箱:timfly@yeah.net
来源:www.cppblog.com/Tim
感谢您对我的支持!

留言簿(9)

随笔分类(173)

IT

Life

搜索

积分与排名

最新随笔

最新评论

阅读排行榜