在“面向对象设计程序员必读”一书中第一章1.6类中有如下陈述:
  “原则上每个对象都有自己的方法和集合,实际上为了节省空间,它们共用同一个物理空间。另外一方面,尽管每个对象的句柄和变量在结构上一样,但并不能被不同对象共享。原因在于运行期它们有不同的值。”
   结构指的是什么?不同的值代表了什么?
如果这个问题不在这发帖,希望大家给个地址~如果复杂的话就告诉我继续读吧~我刚看完第一章~还没看懂……

解决方案 »

  1.   

    因为没有上下文,单看你贴出的文字
    每个对象都有自己的方法不就乱了嘛!应该是同一(具体)类型的对象的方法全都一样。而对象自己有集合,我根本不知道这是什么意思。也许翻译的很烂,而原作者写的很明白,但是我们读翻译之后的就不明白了。“实际上为了节省空间”,我觉得这过分了。面向对象不要纠缠于不同的编译器是怎么实现的,而要确保规则一致。同类对象的方法到底是每一个对象都可以自己再去改变,还是都一样,这个要说清楚。而不能用“计算机内存空间”这种与设计规则无关的只有考虑某一种语言或者平台实现时采用的概念来搅和(掩盖)真实原则。那么关于“句柄和变量结构”这个说法就很明显了,估计作者也是陷进某种低级的编程语言的思想中拔不出来,所以喜欢抄袭那种编程语言的术语来写书。我在真正的面向对象专著上看到的对这个“面向对象第一原则”的说法是:对象具有标识唯一性。打个比方,两个苹果,它们长得模样完全一样、滋味完全一样,但是完全是两个独立的苹果,那么就要用一种在系统中可以最清晰和最简单地唯一标识方式代表它们。例如在数据库中,通常给对象一个整个系统唯一的ID号(如果我们考虑到数据库有可能需要跟其它数据库合并则往往是用GUID),这样我们可以用ID来代表一个对象,即使是对象的类型也是第二位的,唯一标识性是对象的最主要性质。