请给一个服务类和委托法的示例的代码实现 (11分)

  • 主题发起人 千中元
  • 开始时间
sorry,刚才开个玩笑。

我来推动一下这个问题。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=802323
 
| 点类 |<-
| |
/_/ |
| |
| |
| 圆类 |--

结构上建议继承和相识共用。
 
不要这么死板好不好。
我举这个例子,主要是想说明一个道理:一个类要成为另一个类的子类,首先他们必须是同一个
类东西。至于谁是父类,谁是子类,那是逻辑问题,不是这里要讨论的问题。就象楼上说的:到底是W
是父类还是M是。那你自己具体分析好了。但总不能一个是猪,一个是牛,然后你把牛说成是猪的儿子
吧? :(
 
同意Cheka,“圆是轨迹”而不是“圆是点”
虽然看上去好象是那么回事,只要在点的基础上加个半径的属性就成圆了
但圆与正方形、长方形一样,都是几何形状,如果圆可以从点继承下来
那请问正方形、长方形是否也可以呢?
 
我觉得是站在什么高度来看问题的问题。
比如说,前面的车与轮子的概念,如果以“车”这个高度来看的话,轮子只能够属于
车子的,而如果是以“东西”这个高度来看的话,可以说它们两个是同一类的。
父亲和儿子同样。
父亲是人,儿子也是人,所以他们有同样的一个父类--“人”

但是就这个问题来说的话,我认为圆和点应该都属于“图形”类,但是,圆不应该
从点继承下来,因为点是圆的一部分而已。

这只是我的一点看法,不知道各位意下如何?
 
真有意思,从大家的讨论来看,
cheka,xianjun,吗啡 算是明白人,
千中元有点胡涂,
还有人没有看懂问题,
剩下的人不懂这个问题,
而我是旁观者。
 
所以不要仅仅充当旁观者阿,既然是讨论,无论初始观点对错,重在搀和
 
activer请再看看题目。我本来就已经同意了作者的观点,只是以前接触到这样的代码少,
求一个例子而已
 
我的意见是,圆类和点类不需要有继承关系,圆类只不过引用点类作自己的圆心而已。
除了点类之外的其他类,比如多边形,曲线,都是从另一个Shape类继承。
这样,圆类的move方法只不过是调用圆心这个属性的move而已。
 
to 千中元:
"我本来就已经同意了作者的观点,只是以前接触到这样的代码少,求一个例子而已"
请问你接触Delphi多吗?Delphi的VCL有多少这种例子呢,只怕你数都数不过来?

你叫我看看你的题目,可惜为什么你不看看我的第一个回答呢!?

to 还没有明白的人:
告诉你们一个必杀技用来判断继承关系是否合理:
比如B是从A继承的,如果B是A成立,则这个继承是合理的,否则这个继承就有问题
(我只是说是否合适,不是绝对的,如果你愿意,当然可以从点来继承园)。
eg. 超级用户对象继承自用户对象, 运用上面的方法可知,超级用户is用户,显然成立。
而园继承自点,运用上面的方法判断,园is点,显然不成立,所以这个继承方式不合适。
 
千:又被K了 :)
我上面说的判断方法也就是ACTIVER的意思。也同意圆不能从点上继承。不过个人觉得这个
分界点不太清晰。。。
 
精彩得让人胡涂了。[:D][:D][:D]
 
to 小猪;
如果这个题目出个300分,那就精彩的让你流鼻学啦,哈哈哈哈。
 
我觉得我从一开始就已经以高屋建瓴之势解决了如果一定要从点类继承一个圆的话,
那么多边形是否可以构成圆的问题。(各位别用鸡蛋砸我...)
 
我对小猪近乎崇拜。所以绝对不会用我自己砸你。。。。。。
 
那你用钱砸我吧,最好砸死我。
 
to 小猪:
>>“换个角度,如果点类作为圆的服务类,
>>那么圆必然要实现一个方法为GetAllDots(),
>>然后将执行所有的点的move以移动自己。”

呵呵,你还不明白点在这个问题里是用来做什么用的。(这个点是圆心!!!不是园上的点!!!)
算了我都快吃不消了,请问如果要你写一个园的类,你会怎么写?
难道是写一个GetAllDots()出来?

请问大家有没有学过C++ or Java?
在很多经典的教程中都有Shape和园和长方形等图形的继承例子。
不想再打字了,把曹晓钢的话再贴一遍:

“我的意见是,圆类和点类不需要有继承关系,圆类只不过引用点类作自己的圆心而已。
除了点类之外的其他类,比如多边形,曲线,都是从另一个Shape类继承。
这样,圆类的move方法只不过是调用圆心这个属性的move而已。”





 
首先,我自己已经说了,那很笨拙。
其次,我说的关于点和圆的继承关系的看法,可你却偏偏漏掉了。
我已经被砸死了...好几亿...
 
to 小猪: 我怎么会看漏呢?
我也说过了“我只是说是否合适,不是绝对的,如果你愿意,当然可以从点来继承园”
只要你喜欢当然可以这样:
“点类->线条类->曲线类->封闭曲线->圆”
“我觉得chenlili讲的重构虚方法有一定道理。”(本来就是要用虚方法)

大家不必钻牛角尖,比如你要说人类可以从原子继承当然也没有错。
我们只是讨论一个比较合适的做法。
 
我还是从猪继承比较好。因为我只喜欢睡觉和吃饭。
其他关于人的特性我就不需要了。让类层次简单一点吧。[:)]
 

Similar threads

S
回复
0
查看
949
SUNSTONE的Delphi笔记
S
S
回复
0
查看
770
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
顶部