论坛首页 Java企业应用论坛

读《漫谈设计模式》

浏览 15632 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2011-12-31  
zuiyanwangyue 写道
redhat 写道
突然冒昧问一句,怎么体现那些组件和各自的职责?组件和对象的关系,职责和封装的方法的关系,您弄清楚了吗?


很显然,“从回家过年说起”中HappyPeople的订票、乘车、与家人团聚是整体业务逻辑与局部业务逻辑之间的关系,您觉得用模板方法比用组合更合适吗?

如果您实在不理解模板方法的精髓,建议你好好想想Servlet是怎么回事,这是模板方法的经典用法。


很早以前看马大叔的 Refactoring,经常一个例子,反复使用,甚至相反情况,比如Down Cast,Up Cast,。。一个例子而已。
按你的这么样,马大叔都不如你了。
0 请登录后投票
   发表时间:2011-12-31   最后修改:2011-12-31
特意看了 redHat 电子书的回家过年。。回家过年,强调一个过程:购票、回家、庆祝。 在三个过程有严格的顺序,仅仅这个可以考虑用模板设计模式。 但是当 购票方式、某种交通工具、庆祝方式繁多时,直接写个子类继,正陷入了作者所说的子类泛烂。

对随后的数据库 使用为场景时,使用模板设计模式,再使用了回调函数进行实现。 对于这种场景,有必要吗? 设计一个类,该类提供一个查询方法,再生成该类的一个全局变量并赋值。使用时,直接用该查询方法,查询就是了。还用模板设计模式?

模板设计模式的应用特征的之一,是强调过程。但并不是见到出现过程的场景就使用模板设计模式。模板设计模式更重要的应用特征之一是,要求后继类必须遵循既定的过程,以方便其他应用程序对其过程进行监控。


无语。好好再修练设计模式吧。没有悟性,没有独立制作复杂项目的人,看再多的英文设计模式书籍都没有用。有许多书,都与你出版的书一样,故弄玄虑,别人忽悠了你,你又想换个方式忽悠 他人罢了。

0 请登录后投票
   发表时间:2011-12-31   最后修改:2011-12-31
yunhaifeiwu 写道
特意看了 redHat 电子书的回家过年。。回家过年,强调一个过程:购票、回家、庆祝。 在三个过程有严格的顺序,仅仅这个可以考虑用模板设计模式。 但是当 购票方式、某种交通工具、庆祝方式繁多时,直接写个子类继,正陷入了作者所说的子类泛烂。

对随后的数据库 使用为场景时,使用模板设计模式,再使用了回调函数进行实现。 对于这种场景,有必要吗? 设计一个类,该类提供一个查询方法,再生成该类的一个全局变量并赋值。使用时,直接用该查询方法,查询就是了。还用模板设计模式?

模板设计模式的应用特征的之一,是强调过程。但并不是见到出现过程的场景就使用模板设计模式。模板设计模式更重要的应用特征之一是,要求后继类必须遵循既定的过程,以方便其他应用程序对其过程进行监控。


无语。好好再修练设计模式吧。没有悟性,没有独立制作复杂项目的人,看再多的英文设计模式书籍都没有用。有许多书,都与你出版的书一样,故弄玄虑,别人忽悠了你,你又想换个方式忽悠 他人罢了。


非得讲哪个模式好那个坏,我是讲不出来的,只能告诉你,模式没有好坏,只有适合不适合你的问题
为什么我要列举加入回调的模板方法模式,因为它们好归类讨论,应该在一起讲。
至于这个例子是否能够使用模板方法模式,请看我最后一节的描述,只有不同的业务需要,才会有必要进行调整,如何重新调整模型,为什么要调整,你还是看看后面的说明。
有些人就是浮躁,没看明白就开始起哄,至于模板模式的特点,我说的很清楚了,算法框架只是其中一步。
看完我的那章,居然连DRY不提的,就知道你是什么水平了。
引用

对随后的数据库 使用为场景时,使用模板设计模式,再使用了回调函数进行实现。 对于这种场景,有必要吗?

你连这种模式都没见过,我前面讲的避免重复算是你白看了,啥也不说了,这个与悟性有关系。
现在是社会,不是小学时代,老师给你往脑袋塞东西,有悟性,反复实践,才能明白!
想必,我也写到,spring orm框架和spring jdbc框架在使用它,你也没看清楚,因为不是说你没有使用过这些框架不好,就知道你还不懂Callback,啥也不说了。
引用

没有悟性,没有独立制作复杂项目的人

我想我独立制作的软件和项目应该不能说是很多,但请不要瞎猜,不知道是不是比你更多,至少加入论坛比你早几年。
0 请登录后投票
   发表时间:2011-12-31  
redhat不需要作解释了,设计模式这种东西本身就有两面性,怎么说都有道理,你跟人家辩驳是没有用的。哪怕你文章写得再好,别人都能举出不适应的场景,爱买的就买不爱买的也写书赚钱去。
0 请登录后投票
   发表时间:2011-12-31  
yunhaifeiwu 写道

对随后的数据库 使用为场景时,使用模板设计模式,再使用了回调函数进行实现。 对于这种场景,有必要吗? 设计一个类,该类提供一个查询方法,再生成该类的一个全局变量并赋值。使用时,直接用该查询方法,查询就是了。还用模板设计模式?

你连写spring的Rod大叔也骂了吧,就你这水平,估计对数据库的访问应该没有任何经验吧。
0 请登录后投票
   发表时间:2011-12-31  
icezx 写道
redhat不需要作解释了,设计模式这种东西本身就有两面性,怎么说都有道理,你跟人家辩驳是没有用的。哪怕你文章写得再好,别人都能举出不适应的场景,爱买的就买不爱买的也写书赚钱去。

说的非常在理,也是我书中提到的,没有最好的模式,只有最适合的模型,这些模型,可能是从一些模式变化出来的,或者搭配出来的,不在歪歪这个了。
明理的人很多,不怕被诋毁,非常感谢!
0 请登录后投票
   发表时间:2011-12-31   最后修改:2011-12-31
yunhaifeiwu 写道
特意看了 redHat 电子书的回家过年。。回家过年,强调一个过程:购票、回家、庆祝。 在三个过程有严格的顺序,仅仅这个可以考虑用模板设计模式。 但是当 购票方式、某种交通工具、庆祝方式繁多时,直接写个子类继,正陷入了作者所说的子类泛烂。

对随后的数据库 使用为场景时,使用模板设计模式,再使用了回调函数进行实现。 对于这种场景,有必要吗? 设计一个类,该类提供一个查询方法,再生成该类的一个全局变量并赋值。使用时,直接用该查询方法,查询就是了。还用模板设计模式?

模板设计模式的应用特征的之一,是强调过程。但并不是见到出现过程的场景就模板设模式。 更重要的应用特征之二是,要求后继类必须遵循既定的过程,以方便其他应用程序对其过程进行监控。


无语。好好再修练设计模式吧。没有悟性,没有独立制作复杂项目的,看再多的英文设计模式书籍没有用的。有许多书,都与你出版的书一样,故弄玄虑,别人忽悠了你,你又想换个方式忽悠 他人罢了。



朋友,作者举这个例子不是“应用场景”,而是帮助理解的“类比示例”。你还不如说里面用System.out.println输出不够规范,用Log4j会更好。

如果都用现实场景来写书,读者上来先看一堆的背景介绍,再看一堆的getter/setter,在500多行代码里找个什么鬼模板模式,这是要推广,还是要抹黑?

几乎所有的设计模式书籍,都是从“理解设计模式”这个角度去谈的。如果要从“如何在实际场景中选择设计模式”这个角度去详细谈(当然会有些原则性的指导,不过不会详谈),有些书好像试过,不过不算成功,这个东西是要自己悟出来的。如果你在这方面有心得,也不妨出出书或者发发贴。但如果要求别人一定要从这个角度去谈设计模式,有点过了。

关于设计模式的“必要性”,个人认为在“重构”这个东西出来之前,基本无解。首先,就算没有面向对象,你都能把一个事情干了。其次,既然你直接能把事情干了,为了那些虚无缥缈的未知变化,“可能”出现的重复代码而引入额外的抽象,是不是过度设计?你说这个地方很可能要变化,是不是过半年如果它没变你就自刎谢罪?

如果你有丰富的项目经验,当然能一眼看出哪里应该用什么设计模式(就算后来证实是白用了,由于你有多年经验,也没人会质疑你,你可以说“不是不变,时候未到”)。但如果你把这个东西白纸黑字写出来去指导新手,那就只会导致生搬硬套,过度设计。对于新手,最好的办法是先让他理解各个设计模式,然后在实际应用中出现重复代码后再朝这个方向重构,慢慢积累经验之后,为了避免多余的重构,他自然就会在一些地方早期就引入设计模式。我觉得出书的话,做到帮助理解已经足够了。

你写的那两个最重要的应用特征,我相信任何新手看了都会一头雾水。如果让你来写这一章,你会怎样写?举什么例子?不妨写出来看看。
0 请登录后投票
   发表时间:2011-12-31  
redhat 写道

有些人就是浮躁,没看明白就开始起哄,至于模板模式的特点,我说的很清楚了,算法框架只是其中一步。
看完我的那章,居然连DRY不提的,就知道你是什么水平了。

看了你的文章没有提DRY就没水平了??你自己口口声声说严谨 说没有最好的模式 只有更适合的模式
但是你的书却仅仅讲具体的模式是咋回事 却不提什么才叫适合 怎样适合。虽然言辞激烈,但也是避免太多的兄弟拿自己的血汗钱买性价比不高的书籍,谁的钱也不是大风刮来的!!!!!!!!!!!!!
0 请登录后投票
   发表时间:2011-12-31  
zuiyanwangyue 写道
redhat 写道

有些人就是浮躁,没看明白就开始起哄,至于模板模式的特点,我说的很清楚了,算法框架只是其中一步。
看完我的那章,居然连DRY不提的,就知道你是什么水平了。

看了你的文章没有提DRY就没水平了??你自己口口声声说严谨 说没有最好的模式 只有更适合的模式
但是你的书却仅仅讲具体的模式是咋回事 却不提什么才叫适合 怎样适合。虽然言辞激烈,但也是避免太多的兄弟拿自己的血汗钱买性价比不高的书籍,谁的钱也不是大风刮来的!!!!!!!!!!!!!


你出本书说说什么才叫适合不就行了,此领域目前行业内空白,必然大卖。你既然发现了,自己不上,还要威迫别人上,这还真是无私呀。

你们家的兄弟买书时不先翻书看看内容的吗?
0 请登录后投票
   发表时间:2011-12-31  
    其实我觉得把,书好书坏都不是关键,关键是你们的心态都不对,首先作者写一本书出来是需要付出心血的,我们没有批评的权利。其次如果你认为书中有什么不好的地方,在买书前你就能发现,可以选择不买。你认为有比作者更好的想法你也可以写本书出来,让大家看看。
     设计模式本身就是一种思想,了解了看懂了就行,至于怎么运用那就要看你个人的能力和具体的项目,这点没什么好争的,书只是工具而已。我想绝大多数的设计模式的书讲的内容都应该是一样的把。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics