cimil 发表于2007-02-03 08:55:12 IP:
我说大哥,你起子号能不能规范点,上次那个就不说了,这个星子怎么跟日本女人似的,还是看书的时候看反了,改成子星要好多了。 |
# daiyun 发表于2007-02-03 12:06:10 IP: 221.137.132.*
vcl 开发出来的时候是什么年代的事情,C#开发出来的时候又是什么年代的事情,有可比性么,虽说都是出自同一人之手笔。 |
# yrb 发表于2007-02-03 13:09:13 IP: 219.159.20.*
# StevenLee 发表于2007-02-03 16:54:06 IP: 221.218.192.*
每种语言都有自己的优劣,取其长,避其短,这才是正道 楼主这样用Delphi,只能说明楼主对Delphi的理解过于肤浅 |
# aimingoo 发表于2007-02-04 00:06:15 IP: 61.173.115.*
哎~~楼上的立意就不对~~一杆子打翻一船人,激起众怒又开架~何必何必~
VCL归Delphi RTL管,COM归Win32内核管,Delphi中的Interface最早先被设计出来,是与COM有关的。你不能指望borland一开始就设计好一个与COM完全无关的接口机制,还要让它会满足“用于COM”这样一个设计需求。
又,使用COM Interface,就不要让Delphi管理实例的生存周期。混用二者是灾难。但这是COM的机制决定的,根本不是、也不需要是要Delphi通过改变对象实例的结构来解决的问题。 |
# xiammy 发表于2007-02-04 00:28:03 IP: 221.222.75.*
关于语言的设计,我非常赞同Ruby的最小惊讶原则。当然了,这个原则在这里我要重新诠释一下,那就是,接口的使用不应该让不了解的人走到错误的路线上。是的,我们可以约束自己的调用规范。但是,请不要忘了,我们在讨论一个好的设计,而不是好的使用技巧。 |
# xiammy 发表于2007-02-04 00:31:37 IP: 221.222.75.*
to aimingoo:非常感谢你的提醒,看来我的修为还是要提高提高了。 |
# edgethinking 发表于2007-02-05 09:15:06 IP: 58.60.128.*
# huanzhugege 发表于2007-02-05 09:26:33 IP: 61.48.59.*
正是由于Delphi对接口支持的不完善性,我逐渐放弃了他 |
# LastWorker 发表于2007-02-05 11:09:43 IP:
支持aimingoo的观点! aimingoo说的其实在李维的书上说的很清楚了,楼主看来是只把注意力放到寻找"苛评"上了,忘了仔细看书了. 不过楼主"苛评"的精神是值的鼓励的. |
# wr960204 发表于2007-02-05 14:24:59 IP: 61.235.75.*
大概是楼主不太知道COM的实现机制吧。有些没办法,是由COM的机制限制的,不是一个FrameWork可以搞定的。 还有接口固然是VMT,可是不能和对象的VMT混用实现接口和对象的地址一致。这个道理楼主想一下就明白了。 还有你说的As操作符的反操作,可以非常容易的实现接口到对象的转变。只要给接口添加一个GetObject的方法,在方法的实现处直接写Result:=Self;就好了 |
# xiammy 发