Posted on 2007-03-24 10:49
hays(海纳百川) 阅读(538)
评论(0) 编辑 收藏 所属分类:
设计模式
设计模式,以前也考虑去学习过,可是老是听说设计模式是很难学习的,也认为这个东西应该是系统分析师这些人去研究的东西。
最近几个月自己做毕业设计,一个电子购物网站。一个多月,我自学了
structs+hibernat
的基本原理和应用,然后根据自己对面向对象的一些理解现了网站的基本功能!可是当我回顾整个系统的时候,我发现自己的代码显的十分的丑陋
-----
主要表现为类爆炸,模块的耦合性太高。这给我一个知觉:重构。
重构,说起来轻松,可是我还真不知道怎么去开始。因为我也是知觉上告诉我应该去重构下系统的!查看了
jpetstore
的代码后,我第一次在程序中运用了“抽象工厂”这种设计模式来封装了我的
DAO
层。虽然在很大程度上改善了我的代码,可是我发现我的系统变的复杂
----
迷糊
+
迷糊
+
迷糊!
由于在运用了工厂模式之后,我发现自己以前写的项目(也许应该叫做编程练习准确些)缺少就是这种东西
----
感觉上虽然有点复杂可是却提供了很大的灵活性!意识到自己的缺陷之后,我开始了阅读“设计模式”方面的书籍!
我希望在设计模式里找到一些我所需要的东西!确实是这样,在这里我开始用不同的角度路去看问题。
以前我做小项目的时候,比如电子购物系统,我会从界面开始来一步一步系统,象登陆模块,我会先搞好界面,然后开始编写事件处理
--------
习惯了事件驱动模式的
window
开发了,呵呵!到了最后我会发现自己的程序完全是一条直线,根本没有伸缩行
---
很长的一段时间,我都觉的这种编程一点意思都没,所以我很想参与真正项目中来改变自己的这种现状(找不到啊,郁闷,没人带!)
在我还没有开始接触设计模式之前,我以为自己至少也应该基本了解面向对象是个什么大概的东西(封装啊,继承,多态)。可是当我深入其中,才发现面向对象可以是这样的,系统应该这样来分析。在设计模式的世界里,我开始接触到“场景”,“基于模式的面向对象设计”,“变化点与共同点(
CVA
)”。我发现自己深陷其中,在书中,我被著者对设计模式的理解所吸引。在书里,著者通过对自己实际问题的
N
次解决方案的利弊的分析,逐步推导出我们所熟悉的设计模式(工厂模式,门面模式。。)。“基与模式的面向对象设计”这中新的设计思想已经开始在我心地埋下了种子。
学习设计模式吧,我觉的最重要的就是理解它的思想!书上这么说的,设计模式不是一个人创造出来,而是由别人总结出来的。设计模式本身其实我们并不陌生,也许你也在用它,可是你不知道自己使用的是一种什么模式。就好象我们经常用的
DBoperation
类来封装数据库的基本操作一样,我门只知道这是一种封装,而不清楚他是一种
”façade--
门面
”
设计模式。
还有在
web
应用中,我们经常会封装的
DA
层,也就是数据访问层,其实它是一种
bridge
桥接模式。经常听同学说,设计模式理解起来不是很难。难就在于怎么去使用设计模式,其实这和我们刚接触面向对象是一样的,我们知道继承和多态是那么个回事,可是在自己的程序中到底怎么用还是不知道。我看的这本书很大程度上是告诉你怎么去发现模式,然后去运用模式。书中,它把设计模式说成是在特定的场景下的一种最优解决方案。
不说了,下次我会对具体的设计模式写下自己的一些看法(希望把
4
人帮的
23
个设计模式都写一遍)。当然了,我也努力把自己学到这些想法在自己的电子购物系统的重构中运用上去。
最后吧,我把自己看的这本书的名字写上去,做为一本入门书籍,我觉得是
the best!!
《设计模式精解》
----
清华大学出版社。不过看这本书之前,我个人建议是先基本了解下
4
人帮的
23
个设计模式。