设计模式
天啊,我看设计模式这本书,如坠五里云雾中,请高手指点指点. 问题点数:20、回复次数:21Top
1 楼bbdragon(云梯)回复于 2001-12-12 19:22:55 得分 1
反复看,多实践,再反复看。
我完整的都看了4遍。好多东西在项目中也用到了,逐渐就有体会了。Top
2 楼bigban()回复于 2001-12-13 12:41:07 得分 0
to bbdragon:举一些具体一点的应用例子好么?Top
3 楼gigix(透明)回复于 2001-12-13 13:13:38 得分 1
再来打一把广告:建议你看Design Patterns Explained,中译本将在明年三月左右,清华出版社推出。Top
4 楼ed9er(始祖鸟)回复于 2001-12-13 13:47:59 得分 0
个人认为那书对于编码量在1M以下,项目数在3个以下的人根本没用
Top
5 楼bbdragon(云梯)回复于 2001-12-13 16:05:21 得分 1
不同意楼上的观点。那本书同项目有什么关系。其实设计模式不一定要使你的程序更简单。
可能还更复杂,只是系统的灵活性更好。切记别硬套设计模式。别以为你在一个程序里用
的越多越好。如果你面向对象的设计到了一定程度,不自觉的就会在你的设计中使用了
一些设计模式。Top
6 楼cmzxlinhai(老头)回复于 2001-12-13 16:13:28 得分 1
我个人认为,把面向对象的原理搞清楚,关于复用技术就会有所了解,此书就能看得进去。Top
7 楼cber(cber)回复于 2001-12-13 17:17:36 得分 1
只会空谈DP是没有用的,不顾一切强行套用DP则是应当被摒弃的。
DP只有在自己开发的经验到了一定程度时,你才可能会产生强烈的共鸣。Top
8 楼bigban()回复于 2001-12-13 19:00:45 得分 0
虽然我在开发时也使用面向对象的技术,但总有这样的体会:等一个类设计完成之后,会在以后的应用中逐渐发现它的许多不足之处.想让自己有个提高,所以读DP,但总有啃不下来的感觉.Top
9 楼hahaha88(忧郁的眼神,稀嘘的胡子喳)回复于 2001-12-14 05:46:27 得分 1
有的时候如果你用的工具库就是用OO-DesignPattern写的话,那不管你的代码量
是大是小,可能都需要看看这本书中的概念
先使用别人用OO-DesignPattern封装的类库,一边用一边熟悉,这是一个捷径Top
10 楼gigix(透明)回复于 2001-12-14 08:54:41 得分 1
当你发现不足的时候,就对不好的地方进行重构。成功的重构通常会在最后形成一个设计模式。Top
11 楼bigban()回复于 2001-12-14 13:02:27 得分 0
不知大家能否结合实际应用谈一下心得Top
12 楼termite(★★★★★)回复于 2002-02-28 19:27:54 得分 1
如坠五里云雾中说明你对面向对象还不熟悉,先好好看LIPPMAN的书吧.Top
13 楼wlz47(秋水沉舟)回复于 2002-02-28 21:34:50 得分 1
你一定要对什么是多态,C++如何实现多态了如指掌才行,否则就回出现你所说的情况。
你可以先看看比较简单的模式, 我记得书的前言(?)里给出了6种比较简单的模式,先看这些吧Top
14 楼do_do(do_do)回复于 2002-03-01 08:10:14 得分 1
bbdragon(云梯)和cber(cber)说得非常好。我见过误用DP的远多过用好DP的。
你要感受它的思想不要生般硬套。更不要改变你的问题来fit某种模式。用错常比不用更糟。经验多了,水到渠成。Top
15 楼gigix(透明)回复于 2002-03-01 09:52:49 得分 1
关于设计模式更多的书籍,请看http://gigix.topcool.netTop
16 楼steedhorse(晨星)回复于 2002-03-01 10:52:57 得分 1
学习。Top
17 楼do_do(do_do)回复于 2002-03-01 11:26:41 得分 3
记得在其前言什么的(真正讲到模式前那部份)有两原则(rule of thum)。其中第二条大意是“favor aggregation over inheritance”很有味。所谓“favor”即是在两者不相上下时总是选固定的某一个。如果你不仔细体会而将其理解为最好用“aggregation”取代“inheritance”会给你带来不少问题。那书上给的例子就很不恰当。视窗(window)本就不应该是一种(is_a,inheritance)长方形因为window不一定是圆的。再说了它不是(is_a, inheritance)形状而该是“有形状”(has_a, aggregation)。在现实生活中既可是一种(is_a)又可以是有一个(has_a)关系的两个类的例子不多。但写程序时则较常见。例如,栈(stack)和链表的关系既可以是“是一种”(栈是一种链表)也可以是“有一个”(栈有一个链表)。在这种情况下用“有一个”好些。Top
18 楼dong_f(Hahaha)回复于 2002-03-01 13:35:24 得分 1
只有做过软件设计,碰到过问题以后,才能理解“设计模式”。
必须“实践”。
否则,对“设计模式”提出的问题都很难理解。Top
19 楼zheng_can(nothrow)回复于 2002-03-03 03:06:59 得分 1
设计模式是绝对的好书,我看过了一次,觉得深有体会Top
20 楼magicblue(小飞侠)回复于 2002-03-03 11:01:52 得分 3
to:dong_f(Hahaha)
未必。理解和应用之间还差不少呢~~
我认为设计模式实际就是设计原则的应用方案(我想是类似于提示的方案,完全照搬是很糟糕的,这个大家也都说了:)),在把握了设计原则的情况下,对模式也就比较好理解了。象do_do说的继承与聚合的问题,选择继承只有在完全满足IS-A的关系下,其他ALMOST-IS-A,HAS-A都用聚合。而且还要具体分析,比如在C++中正方形就不是一个长方形,呵呵Top
21 楼bigban()回复于 2002-03-16 11:07:50 得分 0
不好意思,年前的贴子到现在才结,而且分数很少.在此谢谢大家.Top




