Design Pattern——Pattern anywhere!

Pattern Garden of Ryan
随笔 - 3, 文章 - 0, 评论 - 5, 引用 - 0
数据加载中……

模式(我的笔记)——模式啥时候才有力量

  其实一直对模式很关注的,也看了不少书,因为也有了一些编码的经验了,一直觉得模式就是别人都这么做的,而且这么做也有很多好处,就跟古人发现“转木取火”,然后又偶然的发现事物在加热之后会更加好吃一样,而这个活动在被推广之后就该被称为模式吧!总觉得是偶然的发现,但是看了几本书又结合自己所做的项目中的实践之后发现自己真的小看模式了,而模式出现也不是完全偶然的。所以终于想写点什么了!
  就如Grady Booch所说Pattern是使用于设计SubSystem的方法论,当我们的工程中有利用设计模式去完成了完善的类库和功能,那么我们的开发过程效率也会相应得到提高。同时我们也可以因为具体的设计模式而优化我们系统的架构啊,试举一例,BusinessFacade层,我们引入了Facade pattern,这样可以简化我们调用,而不用接触底层API,而同时BusinessFacade层帮助我们实现验证和一些UI需要的简单计算的话,那么一个系统就可以在很短的时间将一个Web程序移植为一个Windows程序。
  上例中的这个系统的架式不久可以得到了优化并且很明显有二个优点:第一结构清晰,程序的生命力由哪些因素决定?规范性、效率,还有呢,也许一些人忽略了它的结构,它更易读懂那么它也更容易升级维护了,否则不久它将面目全非;第二Extensible,如果改进了BusinessFacade层,那么不论Web程序还是Windows程序都可以得到升级;第二点又可以理解为程序更加Robust,当然这些都是概念。
  言归正传,什么时候才能发挥模式的力量,我的观点是:带着自由的思想去运用模式的方法解决问题。如果不清醒的去啃一本本Design Pattern方面的书,那么结果会是一个个UML图和一些“简单”的代码,让我印象深刻的是看到一个师弟啃一本书,然后问我“都说这书好,为啥这书里都是些Println Hello world Car...,这里面的应用都太浅显啊,这么简单的例子为什么Inherit、Implements啊?这不是画蛇添足吗?”。无语,我只好回他一句这书我还没看懂呢,也许是你目前水平太高吧,我觉得你该看更高级的应用了,再见时我说“你大概走火入魔了,多写点代码再看吧”。不知他现在看懂了没,也许在毕业前的二手书市上他已经卖给别人了。因为对他来说模式是没有力量的。
  说这个我碰到的故事原因有二:一、模式是好东西吗?那么为什么对初学者来说他不是好东西?真的很值得思考,因为当他写了很多代码并且有了一定的知识储备之后,他会发现他写的或者他看到的就是模式,当他研究过设计模式后他会发现原来这些个API都用到了哪些模式...,一切都变得有了秩序;二、学习模式不该拔苗助长,正如前面提到的那个师弟,也许他明天还在套模式,也许他自从那次鄙视模式后永远和模式告别了。
  自由的追求模式,因为也许当你再见模式的时候,它才是友好的,而你才是有力量的。

posted on 2006-11-20 15:57 Giggs 阅读(1370) 评论(5)  编辑 收藏 网摘 所属分类: 模式

评论

#1楼   回复  引用  查看    

“都说这书号,为啥这书里都是些Println Hello world Car...,这里面的应用都太浅显啊,这么简单的例子为什么Inherit、Implements啊?这不是画蛇添足吗?”

我早些年也有这样的疑惑,为什么只是想读一个简单的文件,就要搞这么多class出来,至于吗。
市面上这种说软件设计的书很多,但是经常是明白的人读了就明白了,不明白的人读了仍然是不明白。这些作者的原意自然是好的,想从一个简单的例子开始,由浅入深,慢慢来。但是这样的坏处是,让初学的人觉得模式好像是在让事情变得复杂,因此产生反感。毕竟设计的目标是简单,而不是复杂。
也许是这些书本来就不是针对新人的,而是有一定工作经验的人,这样的人可以看到书中介绍的技术,回忆自己以前在需求中挣扎的痛苦,从而回到书中产生真正的理解。
博客园正在有很多人忙着写书,希望大家能注意一下这个现象。交代一个技术,一定要把握大方向,不要总是忙着把技术细节说明白,技术发展的历史是什么样的,思路是如何演化的,实际的世界是什么样的,多说一些这方面的东西其实不浪费。这样看的人才能相信这个技术,也知道他有哪些功能,应该来解决什么问题,有哪些缺点。模式本身其实几句话、几行代码而已。
很多人看过一本书,叫做“head first design patterns”,可以作为第一本书看。
2006-11-20 17:17 | 小陆      

#2楼   回复  引用  查看    

你写的很好,以前我在开始学习C#语言和ASP.NET的时候也看过模式的书,人们都说模式很重要,但是我在看了以后根本就没什么感觉,然后就不再看了,再后来在了段时间的编码后,再回过头去看一下,发觉还是作用挺大的.但是还是不能发挥模式的重要的作用,我想问一下楼主给我一个建议让我能在编程的过程中充分的去利用模式.谢谢!不胜感激.
2006-11-20 20:24 | yunhuasheng      

#3楼   回复  引用  查看    

@yunhuasheng
有时模式是重构出来的。
反过来当你的经验达到一定程度, 再碰到某些熟悉的场景,你就会想到 某种模式恰恰满足了需求, 这时你就会用它.
2006-11-20 21:55 | Ring      

#4楼   回复  引用  查看    

"有时模式是重构出来的。 "非常同意这句话。我就喜欢这样做。
2006-11-22 16:57 | ∈鱼杆      

#5楼   回复  引用    

我的经验是,理解模式,首先需要有基本的面向对象的概念,我接触的很多人,连基本的面向对象的思想都是一锅粥,搞模式简直是乱上添乱;
应用模式,也有一些规则的
我初学模式时写过一篇笔记:
http://blog.donews.com/maverick/archive/2005/08/28/531029.aspx
2006-11-24 10:54 | 李卫公[未注册用户]



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 566221




相关文章:

相关链接: