锁定老帖子 主题:读《漫谈设计模式》
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-12-31
zuiyanwangyue 写道 redhat 写道 突然冒昧问一句,怎么体现那些组件和各自的职责?组件和对象的关系,职责和封装的方法的关系,您弄清楚了吗?
很显然,“从回家过年说起”中HappyPeople的订票、乘车、与家人团聚是整体业务逻辑与局部业务逻辑之间的关系,您觉得用模板方法比用组合更合适吗? 如果您实在不理解模板方法的精髓,建议你好好想想Servlet是怎么回事,这是模板方法的经典用法。 很早以前看马大叔的 Refactoring,经常一个例子,反复使用,甚至相反情况,比如Down Cast,Up Cast,。。一个例子而已。 按你的这么样,马大叔都不如你了。 |
|
返回顶楼 | |
发表时间:2011-12-31
最后修改:2011-12-31
特意看了 redHat 电子书的回家过年。。回家过年,强调一个过程:购票、回家、庆祝。 在三个过程有严格的顺序,仅仅这个可以考虑用模板设计模式。 但是当 购票方式、某种交通工具、庆祝方式繁多时,直接写个子类继,正陷入了作者所说的子类泛烂。
对随后的数据库 使用为场景时,使用模板设计模式,再使用了回调函数进行实现。 对于这种场景,有必要吗? 设计一个类,该类提供一个查询方法,再生成该类的一个全局变量并赋值。使用时,直接用该查询方法,查询就是了。还用模板设计模式? 模板设计模式的应用特征的之一,是强调过程。但并不是见到出现过程的场景就使用模板设计模式。模板设计模式更重要的应用特征之一是,要求后继类必须遵循既定的过程,以方便其他应用程序对其过程进行监控。 无语。好好再修练设计模式吧。没有悟性,没有独立制作复杂项目的人,看再多的英文设计模式书籍都没有用。有许多书,都与你出版的书一样,故弄玄虑,别人忽悠了你,你又想换个方式忽悠 他人罢了。 |
|
返回顶楼 | |
发表时间:2011-12-31
最后修改:2011-12-31
yunhaifeiwu 写道 特意看了 redHat 电子书的回家过年。。回家过年,强调一个过程:购票、回家、庆祝。 在三个过程有严格的顺序,仅仅这个可以考虑用模板设计模式。 但是当 购票方式、某种交通工具、庆祝方式繁多时,直接写个子类继,正陷入了作者所说的子类泛烂。
对随后的数据库 使用为场景时,使用模板设计模式,再使用了回调函数进行实现。 对于这种场景,有必要吗? 设计一个类,该类提供一个查询方法,再生成该类的一个全局变量并赋值。使用时,直接用该查询方法,查询就是了。还用模板设计模式? 模板设计模式的应用特征的之一,是强调过程。但并不是见到出现过程的场景就使用模板设计模式。模板设计模式更重要的应用特征之一是,要求后继类必须遵循既定的过程,以方便其他应用程序对其过程进行监控。 无语。好好再修练设计模式吧。没有悟性,没有独立制作复杂项目的人,看再多的英文设计模式书籍都没有用。有许多书,都与你出版的书一样,故弄玄虑,别人忽悠了你,你又想换个方式忽悠 他人罢了。 非得讲哪个模式好那个坏,我是讲不出来的,只能告诉你,模式没有好坏,只有适合不适合你的问题 为什么我要列举加入回调的模板方法模式,因为它们好归类讨论,应该在一起讲。 至于这个例子是否能够使用模板方法模式,请看我最后一节的描述,只有不同的业务需要,才会有必要进行调整,如何重新调整模型,为什么要调整,你还是看看后面的说明。 有些人就是浮躁,没看明白就开始起哄,至于模板模式的特点,我说的很清楚了,算法框架只是其中一步。 看完我的那章,居然连DRY不提的,就知道你是什么水平了。 引用 对随后的数据库 使用为场景时,使用模板设计模式,再使用了回调函数进行实现。 对于这种场景,有必要吗? 你连这种模式都没见过,我前面讲的避免重复算是你白看了,啥也不说了,这个与悟性有关系。 现在是社会,不是小学时代,老师给你往脑袋塞东西,有悟性,反复实践,才能明白! 想必,我也写到,spring orm框架和spring jdbc框架在使用它,你也没看清楚,因为不是说你没有使用过这些框架不好,就知道你还不懂Callback,啥也不说了。 引用 没有悟性,没有独立制作复杂项目的人 我想我独立制作的软件和项目应该不能说是很多,但请不要瞎猜,不知道是不是比你更多,至少加入论坛比你早几年。 |
|
返回顶楼 | |
发表时间:2011-12-31
redhat不需要作解释了,设计模式这种东西本身就有两面性,怎么说都有道理,你跟人家辩驳是没有用的。哪怕你文章写得再好,别人都能举出不适应的场景,爱买的就买不爱买的也写书赚钱去。
|
|
返回顶楼 | |
发表时间:2011-12-31
yunhaifeiwu 写道 对随后的数据库 使用为场景时,使用模板设计模式,再使用了回调函数进行实现。 对于这种场景,有必要吗? 设计一个类,该类提供一个查询方法,再生成该类的一个全局变量并赋值。使用时,直接用该查询方法,查询就是了。还用模板设计模式? 你连写spring的Rod大叔也骂了吧,就你这水平,估计对数据库的访问应该没有任何经验吧。 |
|
返回顶楼 | |
发表时间:2011-12-31
icezx 写道 redhat不需要作解释了,设计模式这种东西本身就有两面性,怎么说都有道理,你跟人家辩驳是没有用的。哪怕你文章写得再好,别人都能举出不适应的场景,爱买的就买不爱买的也写书赚钱去。
说的非常在理,也是我书中提到的,没有最好的模式,只有最适合的模型,这些模型,可能是从一些模式变化出来的,或者搭配出来的,不在歪歪这个了。 明理的人很多,不怕被诋毁,非常感谢! |
|
返回顶楼 | |
发表时间:2011-12-31
最后修改:2011-12-31
yunhaifeiwu 写道 特意看了 redHat 电子书的回家过年。。回家过年,强调一个过程:购票、回家、庆祝。 在三个过程有严格的顺序,仅仅这个可以考虑用模板设计模式。 但是当 购票方式、某种交通工具、庆祝方式繁多时,直接写个子类继,正陷入了作者所说的子类泛烂。
对随后的数据库 使用为场景时,使用模板设计模式,再使用了回调函数进行实现。 对于这种场景,有必要吗? 设计一个类,该类提供一个查询方法,再生成该类的一个全局变量并赋值。使用时,直接用该查询方法,查询就是了。还用模板设计模式? 模板设计模式的应用特征的之一,是强调过程。但并不是见到出现过程的场景就模板设模式。 更重要的应用特征之二是,要求后继类必须遵循既定的过程,以方便其他应用程序对其过程进行监控。 无语。好好再修练设计模式吧。没有悟性,没有独立制作复杂项目的,看再多的英文设计模式书籍没有用的。有许多书,都与你出版的书一样,故弄玄虑,别人忽悠了你,你又想换个方式忽悠 他人罢了。 朋友,作者举这个例子不是“应用场景”,而是帮助理解的“类比示例”。你还不如说里面用System.out.println输出不够规范,用Log4j会更好。 如果都用现实场景来写书,读者上来先看一堆的背景介绍,再看一堆的getter/setter,在500多行代码里找个什么鬼模板模式,这是要推广,还是要抹黑? 几乎所有的设计模式书籍,都是从“理解设计模式”这个角度去谈的。如果要从“如何在实际场景中选择设计模式”这个角度去详细谈(当然会有些原则性的指导,不过不会详谈),有些书好像试过,不过不算成功,这个东西是要自己悟出来的。如果你在这方面有心得,也不妨出出书或者发发贴。但如果要求别人一定要从这个角度去谈设计模式,有点过了。 关于设计模式的“必要性”,个人认为在“重构”这个东西出来之前,基本无解。首先,就算没有面向对象,你都能把一个事情干了。其次,既然你直接能把事情干了,为了那些虚无缥缈的未知变化,“可能”出现的重复代码而引入额外的抽象,是不是过度设计?你说这个地方很可能要变化,是不是过半年如果它没变你就自刎谢罪? 如果你有丰富的项目经验,当然能一眼看出哪里应该用什么设计模式(就算后来证实是白用了,由于你有多年经验,也没人会质疑你,你可以说“不是不变,时候未到”)。但如果你把这个东西白纸黑字写出来去指导新手,那就只会导致生搬硬套,过度设计。对于新手,最好的办法是先让他理解各个设计模式,然后在实际应用中出现重复代码后再朝这个方向重构,慢慢积累经验之后,为了避免多余的重构,他自然就会在一些地方早期就引入设计模式。我觉得出书的话,做到帮助理解已经足够了。 你写的那两个最重要的应用特征,我相信任何新手看了都会一头雾水。如果让你来写这一章,你会怎样写?举什么例子?不妨写出来看看。 |
|
返回顶楼 | |
发表时间:2011-12-31
redhat 写道 有些人就是浮躁,没看明白就开始起哄,至于模板模式的特点,我说的很清楚了,算法框架只是其中一步。 看完我的那章,居然连DRY不提的,就知道你是什么水平了。 看了你的文章没有提DRY就没水平了??你自己口口声声说严谨 说没有最好的模式 只有更适合的模式 但是你的书却仅仅讲具体的模式是咋回事 却不提什么才叫适合 怎样适合。虽然言辞激烈,但也是避免太多的兄弟拿自己的血汗钱买性价比不高的书籍,谁的钱也不是大风刮来的!!!!!!!!!!!!! |
|
返回顶楼 | |
发表时间:2011-12-31
zuiyanwangyue 写道 redhat 写道 有些人就是浮躁,没看明白就开始起哄,至于模板模式的特点,我说的很清楚了,算法框架只是其中一步。 看完我的那章,居然连DRY不提的,就知道你是什么水平了。 看了你的文章没有提DRY就没水平了??你自己口口声声说严谨 说没有最好的模式 只有更适合的模式 但是你的书却仅仅讲具体的模式是咋回事 却不提什么才叫适合 怎样适合。虽然言辞激烈,但也是避免太多的兄弟拿自己的血汗钱买性价比不高的书籍,谁的钱也不是大风刮来的!!!!!!!!!!!!! 你出本书说说什么才叫适合不就行了,此领域目前行业内空白,必然大卖。你既然发现了,自己不上,还要威迫别人上,这还真是无私呀。 你们家的兄弟买书时不先翻书看看内容的吗? |
|
返回顶楼 | |
发表时间:2011-12-31
其实我觉得把,书好书坏都不是关键,关键是你们的心态都不对,首先作者写一本书出来是需要付出心血的,我们没有批评的权利。其次如果你认为书中有什么不好的地方,在买书前你就能发现,可以选择不买。你认为有比作者更好的想法你也可以写本书出来,让大家看看。
设计模式本身就是一种思想,了解了看懂了就行,至于怎么运用那就要看你个人的能力和具体的项目,这点没什么好争的,书只是工具而已。我想绝大多数的设计模式的书讲的内容都应该是一样的把。 |
|
返回顶楼 | |