Decorator模式(孙悟空的七十二变) ( 积分: 100 )

  • 主题发起人 主题发起人 gmsft
  • 开始时间 开始时间
仁者见仁、智者见智。
 
各位又谈设计模式了?????五花八门呀,来看看热闹先
 
设计模式看来很古老了,(?)呵呵。
 
倒不是古老,只是每次看大富翁上讨论设计模试的贴子总是能看到一些很搞笑的东西,我这人就有看热闹的毛病。
 
笑一笑,十年少,好。
 
"更适合",这几个字值得我们深思.现实世界中也是如此,同样一个司机,可以驾驶吊车,也可以驾驶小汽车,用途不同,得心应手的程度不同.例如:在.NET数据分层和用DELPHI数据分层,明显的容易度不同.我渐渐的认为,用DELPHI应立足与组件的制作,而在具体应用上不要强求模式,这很痛苦但很无耐.你可以用MVC等种种方式写一个数据库应用,但越写越觉得我不是在用DELPHI,而是用PASCALL在临摩C#或者说JAVA的写法.都是人,但商人是商人,军人是军人,角色可以转换,但手法应不进相同.
 
很有意思。
看来不光yanyandt2反对(不赞成)用Delphi做设计模式,还有一些其他仁兄也是不赞成。
只是我不明白设计模式是为面向对象的软件基础,为什么Delphi(类PASCAL)不合适?
难道Delphi不是面向对象的设计语言?如果按照yanyandt2等所说,用设计模式就要
用其他语言,那用Delphi做的程序,或者Delphi程序员就和设计模式无缘了?是不是
当初数据结构使用PASCAL作为教学语言,C,C++,VB等其他语言,就不能用数据结构了?
如果说用Delphi实现设计模式让一些人感到痛苦和无奈,我表示不能理解(是不是对
设计模式理解不够或者对Delphi理解太差?),因为我用Delphi实现了大量的模式,
感到很方便愉快。
我的始终一个观点是设计模式是一种!!思想!方法!!,只要是真正面向对象的语言都适合。
 
独孤求败最后只使用木剑就OK了,最主要的还是用剑的人,剑本身不是根本问题。不要说这把剑不好,哪把剑不行,任何剑到了绝顶高手手里都可以杀人。
 
挺长时间没有静下心看这么长的贴子
感觉用DELPHI的人水平真是参差不齐
yanyandt2,明明错得离谱,还挺着嘴硬顶着 不是MODEST 好学的态度 应该批之
我不否认你对DELPHI有了一定的认识甚至JAVA之类的 你所谓的纯OOP的语言
但你的理解并不透彻和完善
在所有的人的发言中看了LICH的发言 还有一定的份量 大部分观点是正确的
但LICH关天C++对接口的实现我个人认为不完全正确
在VC中 普通意义上的接口可以使用PURE ABSTRACT CLASS, 但实现COM接口使用的不是ABSTRACT CLASS 而是改进的特殊数据类型STRUCT 这一点可以由WIZARD生成的代码来看个究竟
DELPHI的OOP也并不完善, 诚然它的设计思想是很先进的, 但它毕竟脱胎于PASCAL这种面对过程的语言, 面对对象的特性没有完全改善, 不利于安全高效的OOP设计和开发.
这一点JAVA和C#要好很多, C#和DELPHI是一个FATHER,
JAVA相当多的观念和DELPHI也是不谋而合 象单根继承, 接口这种概念, JAVA设计时就是以CLASS为底, 但DELPHI在设计时是FUNCTION LIBRARY为底 没有完全摆脱面对过程的影子 这也是ANDRES 为什么离开BORLAND 放弃了DELPHI 开发了C#的一个原因. 现在DELPHI2005虽然作了重大改进在OOP方面, 但是感觉为时已晚.
在接口应用中, 感觉接口不是对象, 它只是提供了一张VMT,和接口静态实例引用表, 通过实例化的接口才能称得上是对象, 由运行时管理器(JVM,CLR)来根据实例化的CLASS确定实际的入口, 对于DELPHI来说在编译时就确定了入口. 这样来说INTERFACE 根本就不是对象,只是一个引用HANDLE而已.
 
此贴是讨论设计模试的,不是讨论各种语言具体实现OO的差异。讨论的是剑“道”而非某一把剑是否锋利,如果在这儿大谈C++,JAVA,C#,delphi实现OO的方法本身就落下乘了。
 
说Delphi不能用模式的人,那我们只能说你白学Delphi了。
假如你说只有C++、Java、.Net能用模式,那我们只能鄙视你。
不要将设计模式根语言混为一谈?如果你喜欢语言那还说什么模式?干脆去学语言得了?看了上面的讨论,只是有股心潮澎湃的感觉,就想争论点什么。
不过没这个必要,有这些时间我干点什么不行?
 
我晕,VCL本身就用了一大堆设计模式.......
 
设计模式是一种解决方案,一些针对特定问题抽象的解决方式,这跟技术本身毫无关系,至于在delphi里面怎么实现,那要看个人的功力来做,比如在Report builder 里面就用了很多的抽象工厂模式。
 
delphi 本身也支持接口,而且也能方便的实现,问题是在套用设计模式时,有必要一定用所谓的Interface吗?VCL做的也不错阿,而且还有静态抽象类,JAva跟C#能实现吗?一般我在套用设计模式从来都不用接口的,就用普通的类来实现,简单,实用,何必想得那么复杂呢。
 
大家不要被那些模式阿,框架阿,什么的术语给迷糊住啦
世上本没有模式,用的人多了也就成了模式
 
不才正在研读刘艺的模式编程, 愿意听课。
 
看来看去,俺也扔块砖头:
yanyandt2,虽然我不赞成你的观点,但我明白你的意思,知道你想说什么.可能[活化石]表达的比较清楚:你可以用MVC等种种方式写一个数据库应用,但越写越觉得我不是在用DELPHI,而是用PASCALL在临摩C#或者说JAVA的写法.
其它的Delphi大侠:我们不能闭关自守,把自己关在Delphi的圈子里.我们要学百家之长,掌握更多的东西,奉劝大家看看Java,它的设计是很巧妙,在层次上是要比Delphi要领先一些.C#就不好说了.至少不建议研究(个人喜好).
从D3->D9,一路走来,我知道,虽然我很喜欢Delphi,但是我更清楚:用正确的工具做相应的事情.至少我不会用锤子去拍苍蝇.
Borland创造了一个又一个神话,但是:Borland不是神.存在就是合理的,终归是要死亡的.
 
好长的帖子...
yanyandt2的确有点过激...
在delphi中,不能为了OO而OO,当然也不能为了模式而模式,依情况而定.
比如,做用户需求时,可以啥都不用管,搞几个界面给用户就可以搞定需求了,如果一定要套上什么OO,什么模式,反而得不偿失....
然而在具体开发中,为了代码可复用,可以尝试用模式,当然也是依个人情况,项目进度等等诸多因素!
 
模式是为了解决问题而诞生的,不是为了做绣而诞生的.希望不要把会用模式作为是否高手的衡量标准,如果你的程序中用了模式,但是她并没有给你带来便利的话就请删掉她.不要玷污了模式的名声.另外模式是没有语言界限的,因为问题没有语言界限...
---------------------------------------
              欢迎访问 http://www.coderpub.com 技术论坛
delphi,asp.net,C#,j2me,软件工程,企业管理
 
刘艺的模式编程是垃圾
 
后退
顶部