Chinaunix

标题: Point3D应不应该从Point2D派生? [打印本页]

作者: bidongliang    时间: 2010-05-06 17:22
标题: Point3D应不应该从Point2D派生?
三维点应不应该从二维点派生? 或者说二者之间应不应该有派生关系?

我个人的看法是根据LSP原则——不应该。但却无法说服团队成员,欢迎大家讨论。

PS:我们用的是C#,但我觉得这与语言无关。
作者: prolj    时间: 2010-05-06 17:25
Point2D应该从Point3D派生!!!
作者: koolcoy    时间: 2010-05-06 18:17
Point2D应该从Point3D派生!!!
prolj 发表于 2010-05-06 17:25



作者: shan_ghost    时间: 2010-05-06 18:28
一般来说,如果你的团员有中学文化程度,那么请教育他们应该以Point1D为基类。

如果他们的学历更高一点,可以理解分数维的含义的话,不妨搞个模板类,以便从1/8维、3/7维开始搭建系统。


另,根据最新物理理论(弦论/膜论等),微观世界好像至少是12维的。只是因为自发对称性破缺之类机制,某些维“蜷曲”起来了,使得这些维度在宏观上不可见。

所以,请务必留下“蜷曲”接口,以方便将来扩充。
作者: lenovo    时间: 2010-05-06 20:22
继承的概念是“是一个”的关系,
请看是否符合。
作者: OwnWaterloo    时间: 2010-05-06 20:55
这问题……  以前我也说不行。

现在嘛…… 得考虑考虑……
如果要用C++实现数据结构, 我肯定这么干了……


  1. struct link1way {
  2.       void* p;
  3. };

  4. struct slist : link1way {
  5.       property( next );
  6. };

  7. struct link2way : link1way {
  8.       void* p;
  9. }

  10. struct list : link2way {
  11.       property( next );
  12.       property( prev );
  13. };

  14. struct tree2way : link2way {
  15.       property( lchild );
  16.       property( rchild );
  17. }

  18. struct link3way : link2way {
  19.       void* p;
  20. };

  21. struct tree3way : link3way {
  22.       property( lchild );
  23.       property( rchild );
  24.       property( parent );
  25. };

复制代码

作者: zxrjkl    时间: 2010-05-06 21:00
这个最好看你们团队对继承的理解,
在所有地方用统一的原则来决定是否用继承
作者: xyfree    时间: 2010-05-06 22:38
为什么这么多人喜欢找标准答案,权威解释?
拿来压人还是让自己舒服点?

这种事情本来就公说公有理婆说婆有理的~
作者: bidongliang    时间: 2010-05-06 22:44
回复 5# lenovo


    二维点是第三个坐标为0的三维点,
   还是三维点是多了一个坐标的二维点?
作者: bidongliang    时间: 2010-05-06 22:47
回复 8# xyfree


    不是拿出来压人,而是有问题了怎么解决!如果有继承关系的话,把三维点赋给二维点的引用,就会问题,比如判断相等——(1, 1, 1) 和(1, 1)是相等的吗?
作者: xyfree    时间: 2010-05-06 22:58
回复 10# bidongliang


    LZ 息怒,我是在宝地抱怨一下而已。

    以代码重用的角度来说(我是觉得没啥可重用的),应该从2D派生。
    尤其是计算距离、投影甚至涉及渲染这类问题的时候。

    以概念准确性和实用性来说,不需要。
作者: gussing    时间: 2010-05-06 23:15
我同意楼上某筒子说法

请尊重科学,提供12维的数据结构,并通过“卷曲”方法获得2维的点
作者: 醉卧水云间    时间: 2010-05-06 23:32
没这个必要。
作者: flw    时间: 2010-05-07 03:44
说服个 P,如果领导干啥都要说服下面的人的话,
这是对股东负责的态度吗?
直接定下来,然后按照文档做就对了。
作者: huangwei0413    时间: 2010-05-07 08:52
Point2D应该从Point3D派生!!!
prolj 发表于 2010-05-06 17:25



    同意这种说法,从继承的含义来说应该是这样。
不能因为3维的点比2维的点多一个成员变量,就要求从2维继承3维。
作者: bidongliang    时间: 2010-05-07 09:48
说服个 P,如果领导干啥都要说服下面的人的话,
这是对股东负责的态度吗?
直接定下来,然后按照文档做就 ...
flw 发表于 2010-05-07 03:44



      确实是这样。但关键是领导要求别人拿方案我来评价,而不是我拿方案别人执行。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2